cmake 编写特定的Clang检查

qkf9rpyu  于 2023-11-19  发布在  其他
关注(0)|答案(3)|浏览(188)

我正在尝试实现我的小自定义检查,例如尝试遍历this tutorial(有点过时)。
我有几个问题:

  • 在我克隆了存储库、实现了检查并运行了cmake之后,构建目标与教程中的不同
  • 在构建和制作项目之后,我甚至不知道我应该运行什么,在文件或项目上执行我的检查器。

感谢您的转发帮助!

6rqinv9w

6rqinv9w1#

好吧,而不是使用一个教程,你承认是过时的,如何使用教程的一部分,官方文档?
https://clang.llvm.org/extra/clang-tidy/Contributing.html#writing-a-clang-tidy-check
我应该运行什么,对文件或项目执行检查器。
使用适当的参数运行clang-tidy可执行文件(有关详细信息,请参阅上述文档)

$ clang-tidy test.cpp -checks=-*,your-custom-check-name

字符串
-*禁用所有默认检查,因此这将只运行您的自定义检查。

mfuanj7w

mfuanj7w2#

我已经解决了构建目标问题**,即缺少check-clang-tools目标。在cmake文件结构中,在llvm/tools/clang/tools级别上,在CMakeLists.txt中缺少一行,我必须添加:add_clang_subdirectory(clang-tools-extra)

    • 执行问题解决方案**:

1.确保将somedir/llvm/build/bin添加到PATH
1.那么你需要执行
llvm/tools/clang/tools/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py fileyouwanttocheck.cpp -checks='-*,your-check'

llvm/tools/clang/tools/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py project_folder_you_want_to_check -checks='-*,your-check'

dfddblmv

dfddblmv3#

我知道这个问题已经很老了,但我刚刚遇到了同样的问题,并想发布我的修复:
1.导航到build_ninja目录。
1.运行cmake -DLLVM_ENABLE_PROJECTS=clang;clang-tools-extra -GNinja ..\llvm(这将指示cmake构建clangclang-tools-extra
1.运行ninja check-clang-tools(运行clang-tools-extra的所有测试)

相关问题