2010-10-18 3 views
2

мне нужно, чтобы получить это в результате в определениях препроцессора в MSVC генератора:Как избежать точки с запятой в свойстве COMPILE_FLAGS cmake?

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

Но когда я использую следующую последовательность эвакуации в set_source_files_properties:

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

генерируемый результат является: MYPATH = \ "d: \"; ". \ Lib \"

Обратите внимание на точку с запятой с двумя кавычками. Есть ли способ обхода котировок, чтобы разрешить некотируемые точки с запятой?

ответ

2

AFAIR, cmake treat; как разделитель списков, поэтому он ведет себя таким образом для свойств, как в документации.

СОБСТВЕННОСТЬ [value1 [значение2 ...]

Возможно, у Вас есть лучше попробовать что-то вроде этого - сделать строку переменной, а затем попытаться заменить его.

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

НТН, Сергей