CMake添加调用铛分析器的目标
问题描述:
我基本上喜欢实现与http://blog.alexrp.com/2013/09/26/clangs-static-analyzer-and-automake相同,但与CMake。CMake添加调用铛分析器的目标
analyze_srcs = foo.c
analyze_plists = $(analyze_srcs:%.c=%.plist)
CLEANFILES = $(analyze_plists)
$(analyze_plists): %.plist: %.c
@echo " CCSA " [email protected]
@$(COMPILE) --analyze $< -o [email protected]
analyze: $(analyze_plists)
.PHONY: analyze
所以,你可以运行
make analyze
make clean
我想我需要使用add_custom_command/add_custom_target
并以某种方式改变“目标文件”扩展名只是为了这个目标。
之后获取生成的文件的列表,以便将它们传递给脚本以将它们组合成1个输出文件。
任何人都可以指向正确的方向吗?
答
我找到了一种方法:(?$<TARGET_OBJECTS:objlibtarget>
)
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()
铛的的plist文件(扩展得到的.o这样)合并为一个报告,仍然是开放的。
答
运行时您可以使用scan-build
cmake
。
scan-build cmake /path/to/source
scan-build make
scan-build
设置CC
和CXX
环境变量,由cmake
回升。