开发Clang LibTooling工具的三种方式

编译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


  1. 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"。
  2. 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 ools\clang ools\clang-check开发,这种方法最快、最简单。



开发Clang LibTooling工具方法2

复制llvm1406\clang ools\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")


发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章