我有一个公司内部工具,它使用以下模式在每个命令行中获取多个文件
-i file1 -i file2
要将此工具添加到我的 CMake 构建中,我一直在使用 add_custom_target 命令,如下所示
add_custom_target(
CustomTarget
COMMAND ${CompanyTool} ${FILES} -o output"
DEPENDS ActualTarget)
只要 FILES 仅扩展为单个文件,此方法就可以正常工作,但是当我传入多个文件时,该命令开始仅产生垃圾输出。在检查 CMake 生成的 build.ninja 文件后,我发现 custom_target 命令被转换为一个调用,其中参数后跟这样的反斜杠
\ -i\ file\
我怀疑这就是这不起作用的原因。
现在为什么 F. CMake 会这样做,我该如何摆脱这种行为?
/edit
在将 FILES 字符串传递给 add_custom_target 之前打印它我看不到那些反斜杠...
好的,我知道了。构建一个新列表并在 foreach 循环中附加 -i 和文件是有效的。