我正在尝试创建一个 cmake (3.22) 函数,该函数创建一个cppclean
为我在参数中提供的目标调用的目标
function (cppclean target)
if(${STATIC_CODE_ANALYSIS})
find_program(CPP_CLEAN cppclean)
if(CPP_CLEAN)
add_custom_target(cppclean
COMMAND ${CPP_CLEAN} "--include-path $<JOIN:$<TARGET_PROPERTY:${target},INCLUDE_DIRECTORIES>, --include-path >" $<TARGET_PROPERTY:${target},SOURCE_DIR>
VERBATIM
COMMAND_EXPAND_LISTS
)
else()
message("Cannot find cppclean")
endif()
endif()
endfunction()
但是我不处理错误:
没有这样的文件或目录:'--include-path ... --include-path ... --include-path ...'
当我查看创建的 make 文件时,我确实看到了扩展生成器表达式周围的引号,这可能是错误的。
如果我删除生成器表达式周围的引号,它会给出不同的错误:
无法创建/home/foo/src:是目录
并且make文件显示JOIN表达式没有展开。
如何解决这个问题?