0

我正在尝试创建一个 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表达式没有展开。

如何解决这个问题?

4

0 回答 0