2010-10-18 26 views
2

Je dois obtenir ceci comme résultat dans les définitions de préprocesseur du générateur msvc:Comment échapper un point-virgule dans la propriété COMPILE_FLAGS de cmake?

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

Mais quand j'utilise la séquence d'échappement suivante dans set_source_files_properties:

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

le résultat généré est: MYPATH = \ "d: \"; ". \ Lib \"

Notez le point-virgule entre guillemets. Existe-t-il une solution de contournement des citations pour autoriser les points-virgules sans guillemets?

Répondre

2

AFAIR, traiter; en tant que séparateur de liste, il se comporte ainsi pour les propriétés selon la documentation.

PROPRIÉTÉ [valeur1 [valeur2 ...]

Probablement vous avez mieux essayer quelque chose comme ça - faire chaîne variable et puis essayez de le remplacer.

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

HTH, Sergey