开发 clang 插件, 最常见的就是,属性检查器
本文最后的效果:
llvm-project
, 直接尚
本文采用 CPP ,开发插件
1, 项目准备
1.1 安装 cmake
brew install cmake
cmake 可以帮我们,根据脚本,自动创建工程
查看,之前安装过没有
可以用
brew list | grep ^cmake
1.2 获取 llvm 的工程
1.2.1 下载 llvm-project
git clone https://github.com/llvm/llvm-project
使用 Xcode 生成 llvm 项目
进入
cd /Users/jzd/Movies/A_B/llvm-project
等价于
> cd /yourPath/llvm-project
生产
cmake -S llvm -B build -G Xcode -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi"
需要添加这三个库, clang 、libcxx 、libcxxabi
( 这一步,可能时间有点长 )
得到我们要的工程文件
1.2.2, 编译
run 一下
( 这一步,可能时间比较长 )
2, 插件开发
2.1 开发前的准备
2.1.1 做模版配置
进入到这个文件夹
/yourPath/llvm-project/clang/tools
修改文件 CMakeLists.txt
CMakeLists.txt
是 cmake 的配置文件
添加最后一句
add_clang_subdirectory(libclang)
add_clang_subdirectory(amdgpu-arch)
// 添加这一句, 添加插件目录
add_clang_subdirectory(propPlugIn)
创建 /yourPath/llvm-project/clang/tools
下的
文件夹 propPlugIn
文件夹
与 cmake 的配置文件中,添加的语句对应
效果如图
可看到,最右端,有两个文件
配置文件 CMakeLists.txt
中写一句:
add_llvm_library( propPlugIn MODULE BUILDTREE_ONLY propertyPlugIn.cpp)
添加 llvm 插件
上面提到的 cpp
文件,为空
2.1.2 配置完成,出结果
重新跑一下
cd /yourPath/llvm-project
cmake -S llvm -B build -G Xcode -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi"
此时查看
/yourPath/llvm-project
中的工程,长这样