Как избежать точки с запятой в свойстве COMPILE_FLAGS cmake? - PullRequest
2 голосов
/ 19 октября 2010

Мне нужно получить это в результате определения препроцессора генератора msvc:

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

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

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

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

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

1 Ответ

2 голосов
/ 01 февраля 2011

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

НЕДВИЖИМОСТЬ [значение1 [значение2 ...]

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

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

НТН, Сергей

...