llvm-tooling
Expertise in LLVM tooling development including Clang plugins, LLDB debugger extensions, Clangd/LSP, and LibTooling. Use this skill when building source code analysis tools, refactoring tools, debugger extensions, or IDE integrations.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Expertise in LLVM tooling development including Clang plugins, LLDB debugger extensions, Clangd/LSP, and LibTooling. Use this skill when building source code analysis tools, refactoring tools, debugger extensions, or IDE integrations.
How to use
Przygotuj środowisko: zainstaluj LLVM i Clang wraz z nagłówkami deweloperskimi. Upewnij się, że masz dostęp do narzędzia llvm-config, które będzie potrzebne do pobrania flag kompilacji.
Stwórz plik wtyczki Clang zawierający klasy RecursiveASTVisitor, ASTConsumer i PluginASTAction. Wtyczka powinna dziedziczić z PluginASTAction i implementować metodę CreateASTConsumer do przetwarzania drzewa AST.
Zarejestruj wtyczkę w rejestrze FrontendPluginRegistry, podając unikalną nazwę i opis. Ta rejestracja umożliwi Clangowi dynamiczne załadowanie wtyczki podczas kompilacji.
Skompiluj wtyczkę jako bibliotekę współdzieloną (.so) za pomocą clang++ z flagami -shared -fPIC. Użyj llvm-config do pobrania wymaganych flag kompilacji i linkowania.
Uruchom Clang z załadowaną wtyczką, przekazując flagi -Xclang -load, -Xclang -plugin i nazwę wtyczki. Wtyczka będzie przetwarzać kod źródłowy podczas normalnego procesu kompilacji.