我需要在msvc生成器的预处理器定义中得到这个结果:
MYPATH=\"d:\\;.\\Lib\"
但是当我在set_source_files_properties中使用以下转义序列时:
set_source_files_properties(source.c PROPERTIES COMPILE_FLAGS "-DMYPATH=\\\"d:\\\;.\\\\Lib\\\"")
生成的结果是: MYPATH = \“d:\”;“。\ Lib \”
请注意双引号分号。是否有引用解决方法允许不带引号的分号?
答案 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, 塞吉