你如何在cmake的COMPILE_FLAGS属性中转义分号?

时间:2010-10-18 21:26:29

标签: visual-c++ preprocessor escaping cmake

我需要在msvc生成器的预处理器定义中得到这个结果:

MYPATH=\"d:\\;.\\Lib\"

但是当我在set_source_files_properties中使用以下转义序列时:

set_source_files_properties(source.c PROPERTIES COMPILE_FLAGS "-DMYPATH=\\\"d:\\\;.\\\\Lib\\\"")

生成的结果是: MYPATH = \“d:\”;“。\ Lib \”

请注意双引号分号。是否有引用解决方法允许不带引号的分号?

1 个答案:

答案 0 :(得分:2)

AFAIR,cmake treat;作为列表分隔符,因此它按照文档的方式对属性起作用。

PROPERTY [value1 [value2 ...]

可能你最好尝试这样的事情 - 把它变成字符串变量,然后尝试替换它。

set(MY_PATH "\"d:\\\;.\\\\Lib\\\"")
set_source_files_properties(source.c PROPERTIES COMPILE_FLAGS ${MY_PATH})

HTH, 塞吉