Remplacer compiler flags pour les fichiers unique

Je voudrais utiliser un ensemble global de drapeaux pour la compilation d'un projet, ce qui signifie qu'à mon top niveau CMakeLists.txt fichier j'ai spécifié:

ADD_DEFINITIONS ( -Wall -Weffc++ -pedantic -std=c++0x )

Cependant, pour un fichier spécifique (disons "foo.cpp") dans un sous-répertoire, je veux passer à la
compiler flags de ne pas appliquer d'-Weffc++ (inclus commercial de la bibliothèque je ne peux pas changer). Pour simplifier la situation pour utiliser uniquement le Mur, j'ai essayé:

 SET_SOURCE_FILES_PROPERTIES( foo.cpp PROPERTIES COMPILE_FLAGS -Wall )
 ADD_EXECUTABLE( foo foo.cpp )

qui n'a pas de travail.
J'ai aussi essayé

SET_PROPERTY( SOURCE foo.cpp PROPERTY COMPILE_FLAGS -Wall )
ADD_EXECUTABLE( foo foo.cpp )

et

ADD_EXECUTABLE( foo foo.cpp )
SET_TARGET_PROPERTIES( foo PROPERTIES COMPILE_FLAGS -Wall )

ni travaillé.

Enfin, j'ai essayé de supprimer cette définition:

REMOVE_DEFINITIONS( -Weffc++ )
ADD_EXECUTABLE( foo foo.cpp )
ADD_DEFINITIONS( -Weffc++ )

qui n'a pas de travail (ce qui signifie, je reçois beaucoup de style de mises en garde à propos de la bibliothèque commerciale).
(**Note: Les mises en garde SONT supprimées si je N'ai PAS ré-inclure le -Weffc++ directive après la construction de l'exécutable.)

J'ai aussi essayé de supprimer temporairement le compiler flags:
http://www.cmake.org/pipermail/cmake/2007-June/014614.html
mais cela n'a pas aidé.

Est-il pas une solution élégante à ce?

InformationsquelleAutor J.B. Brown | 2012-11-30