51 votes

CMake : comment passer des macros de préprocesseur

Comment passer une macro au préprocesseur ? Par exemple, si je veux compiler une partie de mon code parce qu'un utilisateur veut compiler un test unitaire, je ferais ceci :

 #ifdef _COMPILE_UNIT_TESTS_
    BLA BLA
#endif //_COMPILE_UNIT_TESTS_

Maintenant, je dois transmettre cette valeur de CMake au préprocesseur. La définition d'une variable ne fonctionne pas, alors comment puis-je accomplir cela ?

59voto

Cat Plus Plus Points 53385

add_definitions(-DCOMPILE_UNIT_TESTS) (cf. doc de CMake ) ou modifier une des variables flag ( CMAKE_CXX_FLAGS , ou CMAKE_CXX_FLAGS_<configuration> ) ou définir la COMPILE_FLAGS sur le cible.

De plus, les identifiants commençant par un trait de soulignement suivi d'une lettre majuscule sont réservés à l'implémentation. Identifiants contenant également un double trait de soulignement. Alors ne les utilisez pas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X