我写了一个像这样的cmake命令:
add_custom_target(testar
COMMAND clearmake -C gnu ${CMD_ARGS})
CMD_ARGS
在命令行中定义,如:
cmake -DCMD_ARGS="-d -w"
但是在生成的makefile中,-d -w
更改为-d\ -w
;它在所有空格之前添加了一个斜杠,结果是:
clearmake -C gnu -d\ -w
如果我在VERBATIM
中使用add_custom_target
选项,则cmake不会添加斜杠,但会引用参数
clearmake -C gnu "-d -w"
这是不正确的,我想:
clearmake -C gnu -d -w
生成上述目标所需的语法是什么?
答案 0 :(得分:2)
参数应该是list
,“-d -w”不是(它只是一个字符串)。你可以做两件事:
CMD_ARGS
上的separate_arguments命令,然后将其传递到add_custom_target
(这会使空格符号为冒号以生成正确的list
)。 add_custom_target
命令中的任何内容都不需要更改,CMake的输入不正确,可以用1修复或由2处理。