发布于 2019-06-13 11:02:09
使用CMake的静态分析工具的推荐方法在Daniel的“有效Cmake”(=&t=77m13s)中提出。
您可以在调用cmake时定义它,例如:
cmake "-DCMAKE_CXX_CPPLINT=cpplint" ..或者把它放入CMakeLists.txt
set(CMAKE_CXX_CPPLINT "cpplint")推荐选项是第一个选项(我们不应该在项目中定义什么不是项目需求)。
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))。
发布于 2018-10-04 15:59:20
我未能使用CMAKE_<LANG>_CPPLINT检查代码样式。
我是通过使用add_custom_target来实现的。
假设项目中有一个名为src的源代码目录,将这些语句编码到您的CMakeLists.txt中。
aux_source_directory(${CMAKE_SOURCE_DIR}/src src)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}) #I put cpplint.cmake in $CMAKE_SOURCE_DIR
include(cpplint)
add_style_check_target(phoenix-cpplint "${src}") 注意:
如果还有什么问题的话,调试您的CMakeLists.txt。
发布于 2020-05-08 07:18:04
我一直在努力解决同样的问题。
我用CMake 3.10.2尝试过,user2449761的评论仍然正确。使用set(CMAKE_CXX_CPPLINT "cpplint")仍然不检查任何头文件。
由于aux_source_directory没有列出头文件,所以kgbook的答案不再有效。然而,你可以使用
get_target_property(src staticcodecheck SOURCES)这会给你所有的非系统头。剩下的可以保持不变。至于在特定时间运行cpplint,您可以尝试
add_custom_command(TARGET ${TARGET}
PRE_BUILD
...它将取代add_custom_target(${TARGET_NAME}.在他的cpplint.cmake里。
希望这能有所帮助。
https://stackoverflow.com/questions/51582604
复制相似问题