2010-09-04 2 views
0

j'essaie de forcer, y compris en-tête avec CMake (2.8.2) et cette première solution:Cmake: comment forcer, y compris plus d'un en-tête

SET_TARGET_PROPERTIES(${MyTarget} PROPERTIES COMPILE_FLAGS "/FI\"${ForcedHeader_A}\"/FI\"${ForcedHeader_B}\"") 

D'une certaine façon CMake ignore (ou écrase) le premier drapeau du compilateur. Cela se produit uniquement si les deux indicateurs du compilateur sont les mêmes que dans ce cas. Je dois porter quelque chose que je ne veux pas modifier la structure du logiciel en ce moment. Quelqu'un peut-il m'aider ?

Merci

Répondre

0

Essayez cette (note également que CMake récente signifie que vous ne avez pas besoin de USE_CAPS_ALL_THE_TIME):

get_target_property(FLAGS ${MyTarget} COMPILE_FLAGS) 
set_target_properties(${MyTarget} PROPERTIES COMPILE_FLAGS "${FLAGS} /FI\"${ForcedHeader_A}\"/FI\"${ForcedHeader_B}\"") 
+0

Merci Jack, mais il devrait fonctionner de cette façon. get_target_property (FLAGS $ {MyTarget} COMPILE_FLAGS) set_target_properties ($ {MyTarget} PROPRIETES COMPILE_FLAGS "$ {FLAGS}/FI \" $ {ForcedHeader_A} \ "/ FI \" $ {ForcedHeader_B} \ "") – Seroti

+0

Désolé, c'était juste envoyé. set (FLAG "$ {DRAPEAUX} "/ FI \" $ {ForcedHeader_A} \" » "\" $ {ForcedHeader_A} \ "") set_target_properties ($ {MyTarget} PROPRIETES COMPILE_FLAGS "$ {FLAGS}") # S'il vous plaît noter que le second drapeau ne doit pas avoir l'option/FI à l'avant, c'est un problème interne de l'analyseur CMake je suppose – Seroti

+0

Je suis désolé, je ne comprenais pas cela.Si vous l'avez compris, vous devriez répondre à votre propre question (il n'y a rien de mal à répondre à vos propres questions) et ensuite accepter la réponse. –