我基本上希望通过CMake实现与http://blog.alexrp.com/2013/09/26/clangs-static-analyzer-and-automake相同的功能。
analyze_srcs = foo.c
analyze_plists = $(analyze_srcs:%.c=%.plist)
CLEANFILES = $(analyze_plists)
$(analyze_plists): %.plist: %.c
@echo " CCSA " $@
@$(COMPILE) --analyze $< -o $@
analyze: $(analyze_plists)
.PHONY: analyze
这样你就可以运行
make analyze
make clean
我想我需要使用add_custom_command/add_custom_target
并以某种方式仅针对该目标更改“目标文件”扩展名。
然后,获取生成文件的列表,可能会将它们传递给脚本,以便将它们组合成一个输出文件。
有谁能给我指个方向吗?
发布于 2014-02-06 22:20:30
我找到了一个方法:
function(add_clang_static_analysis target)
get_target_property(SRCs ${target} SOURCES)
add_library(${target}_analyze OBJECT EXCLUDE_FROM_ALL ${SRCs})
set_target_properties(${target}_analyze PROPERTIES
COMPILE_OPTIONS "--analyze"
EXCLUDE_FROM_DEFAULT_BUILD true)
endfunction()
将clang的plist文件(以这种方式获得扩展名.o )组合到一个报告中仍然是打开的($<TARGET_OBJECTS:objlibtarget>
?)。
发布于 2014-02-15 01:18:31
您可以在运行cmake
时使用scan-build
。
scan-build cmake /path/to/source
scan-build make
scan-build
设置由cmake
选取的CC
和CXX
环境变量。
https://stackoverflow.com/questions/19050461
复制相似问题