109 votes

Comment exclure un seul fichier d'un modèle cmake `file(GLOB ... )` ?

Mon CMakeLists.txt contient cette ligne :

file(GLOB lib_srcs Half/half.cpp Iex/*.cpp IlmThread/*.cpp Imath/*.cpp IlmImf/*.cpp)

et le IlmImf Le dossier contient b44ExpLogTable.cpp que je dois exclure de la construction.

Comment y parvenir ?

0voto

Marek R Points 4503

J'ai une solution alternative qui vaut la peine d'être remarquée : marquer la source comme fichier d'en-tête. De cette façon, il ne fera pas partie du processus de construction, mais sera visible dans l'IDE (vérifié sur Visual Studio et Xcode) :

set_source_files_properties(b44ExpLogTable.cpp,
                            PROPERTIES HEADER_FILE_ONLY TRUE)

Je l'utilise lorsqu'un fichier source est spécifique à une plateforme. C'est génial car si un symbole doit être modifié à plusieurs endroits et qu'il fonctionne sur une plateforme, les autres sources spécifiques à la plateforme seront visibles et pourront être mises à jour également.

Pour cela, j'ai créé une fonction d'aide ce qui fonctionne très bien dans mon projet actuel.

Je n'ai pas encore utilisé cette méthode avec le fichier GLOB.

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