編譯LLVM原始碼
下載LLVM原始碼
https://github。com/llvm/llvm-project/releases
LLVM14。0。6
解壓到本地
建立build1406目錄
編譯
cmake -S llvm1406\llvm -B build1406 -DLLVM_ENABLE_PROJECTS=clang -DLLVM_TARGETS_TO_BUILD=X86 -Thost=x64 -DCPACK_GENERATOR=ZIP -DLLVM_INCLUDE_TESTS=OFFcmake ——build build1406 ——config Release ——target package
LLVM ENABLE PROJECTS:
這是一個要構建的專案列表,由分號分隔。專案的原始碼必 須與 llvm 目錄在同一級別 (並排佈局)。當前列表是 clang, clangtools-extra, compiler-rt, debuginfo-tests, lib, libclc, libcxx, libcxxabi, libunwind, lld, lldb, llgo, mlir, openmp, parallel-libs, polly 和 pstl。All 可以作為此列表中的所有專案的簡寫。要和 LLVM 一起構建 Clang 和 llgo, 必須指定-DLLVM ENABLE PROJECT=“clang;llgo”。
LLVM TARGETS TO BUILD
: LLVM 支援不同的 CPU 架構。預設情況下,構建所有目標。 使用此變數指定要構建的目標列表,由分號分隔。目前支援的目標有 AArch64、AMDGPU、 ARM、BPF、Hexagon、Lanai、Mips、MSP430、NVPTX、PowerPC、RISCV、Sparc、SystemZ、 WebAssembly、X86、XCore。All 可以作為 All 目標的簡寫,並且名稱區分大小寫。若要只啟用 PowerPC 和 X86目標,必須指定-DLLVM TARGETS To BUILD=“PowerPC;X86”。
編譯LLVM支援的CMake選項:
https://llvm。org/docs/CMake。html
編譯後打包的庫和標頭檔案
開啟build\LLVM-14。0。6-win64。zip解壓到外層目錄
開發Clang LibTooling工具方法1
基於build1406\tools\clang\tools\clang-check開發,這種方法最快、最簡單。
開發Clang LibTooling工具方法2
複製llvm1406\clang\tools\clang-check一份改名為clang-check-my,並修改下圖中的CMakeLists。txt檔案
重新執行下
cmake -S llvm1406\llvm -B build1406 -DLLVM_ENABLE_PROJECTS=clang -DLLVM_TARGETS_TO_BUILD=X86 -Thost=x64 -DCPACK_GENERATOR=ZIP -DLLVM_INCLUDE_TESTS=OFF
開發Clang LibTooling工具方法3
使用LLVM編譯產物LLVM-14。0。6-win64,在CMakeLists。txt中使用
參考專案1:
find_package(LLVM REQUIRED CONFIG)
find_package(Clang REQUIRED CONFIG)
https://github。com/trailofbits/constexpr-everything
參考專案2:
https://github。com/andreasfertig/cppinsights
llvm_config(LLVM_CXXFLAGS “——cxxflags”)
llvm_config(LLVM_LDFLAGS “——ldflags”)
llvm_config(LLVM_LIBS2 “——libs”)
llvm_config(LLVM_LIBDIR “——libdir”)
llvm_config(LLVM_INCLUDE_DIR “——includedir”)
llvm_config(LLVM_SYSTEM_LIBS2 “——system-libs”)