我找到的唯一在线资源是有关CMAKE_<LANG>_CPPLINT(此处链接)和此示例(此处链接)的 CMake 文档,但我无法弄清楚如何在 CMakeLists.txt 文件中实际使用它。我尝试了提供的示例,但无法使其正常工作。仅供参考,我按照此处的说明安装了 cpplint 。
到目前为止,我可以使用以下 CMake 命令在 CMakeLists.txt 中运行 cpplint python 脚本:
execute_process(COMMAND cpplint path/To/File/To/Analyse.cpp)
Run Code Online (Sandbox Code Playgroud)
但是,我很确定这不是执行此操作的正确方法。
Daniel Pffeifer 的“Effective Cmake”(https://www.youtube.com/watch?v=rLopVhns4Zs&=&t=77m13s)中介绍了在 CMake 中使用静态分析工具的推荐方法。
您可以在调用时定义它cmake,例如:
cmake "-DCMAKE_CXX_CPPLINT=cpplint" ..
Run Code Online (Sandbox Code Playgroud)
或将其放入CMakeLists.txt:
set(CMAKE_CXX_CPPLINT "cpplint")
Run Code Online (Sandbox Code Playgroud)
推荐的选项是第一个(我们不应该在项目中定义什么不是项目要求)。
CMake 将调用cpplint它编译的每个文件。您可以在分号后传递额外的参数(例如-DCMAKE_CXX_CPPLINT=cpplint;--linelength=100)。
这种方法的缺点:
cpplint分别为每个文件调用)。cpplint)。请注意,您可以以相同的方式使用其他静态分析工具:
"-DCMAKE_CXX_CLANG_TIDY=/usr/bin/clang-tidy-3.9;-checks=*""-DCMAKE_CXX_CPPCHECK=/usr/bin/cppcheck;--std=c++11""-DCMAKE_CXX_INCLUDE_WHAT_YOU_USE=/usr/bin/iwyu;--transitive_includes_only"cmake -DCMAKE_LINK_WHAT_YOU_USE=TRUE其中一些将需要“编译数据库”( set(CMAKE_EXPORT_COMPILE_COMMANDS ON))。
| 归档时间: |
|
| 查看次数: |
3505 次 |
| 最近记录: |