CMake - comment compiler plusieurs définitions pour la cible de l'exécutable?
Je suis en train de définir plusieurs compiler définitions pour l'un des fichiers exécutables je suis en train de compiler dans CMake (pour activer les macros utilisées pour le débogage). Voici ce que j'ai essayé:
add_executable (trie_io_test trie_io_test.c trie.c word_list.c)
set_target_properties(
trie_io_test
PROPERTIES
COMPILE_DEFINITIONS UNIT_TESTING=1)
set_target_properties(
trie_io_test
PROPERTIES
COMPILE_DEFINITIONS IO_TEST=1)
Malheureusement, cela ne provoque que la IO_TEST être défini.
J'ai aussi essayé le suivant:
add_executable (trie_io_test trie_io_test.c trie.c word_list.c)
set_target_properties(
trie_io_test
PROPERTIES
COMPILE_DEFINITIONS UNIT_TESTING=1 IO_TEST=1)
Mais, d'autre part, les causes de CMake erreur.
Comment définir ces deux définitions pour l'exécutable, je suis en train de construire?
OriginalL'auteur qiubit | 2015-05-30
Vous devez vous connecter pour publier un commentaire.
Vous voulez
target_compile_definitions
au lieu deset_target_properties
:PRIVATE
,PUBLIC
ouINTERFACE
.PRIVATE
signifie essentiellement que les drapeaux ne sont appliqués que pour cette bibliothèque.PUBLIC
etINTERFACE
les drapeaux sont également appliquée à toutes les cibles qui se lie à elle (c'est à dire son dependees); la différence entre ces deux être quiINTERFACE
drapeaux ne sont pas appliquées à la bibliothèque elle-même - seulement ses dependees.Merci pour la référence, c'est une réponse à ma question "Quelle est PRIVÉ dire dans ce cas?" que j'ai supprimé, car j'ai vu qu'il y avait un lien vers la documentation après avoir posé la question.
PRIVÉ ajoute la propriété juste pour cette cible. INTERFACE ajoute la propriété sur les cibles lien vers cette cible. Les actes PUBLICS comme PRIVÉS et de l'INTERFACE, car cela ajoute à la propriété, à la fois cible et aux objectifs que le lien vers cette cible.
Je suis absent la possibilité de définir des
optimized
etdebug
sur eux. Pouvez utiliser le générateur d'expressions, mais je ne suis pas sûr si il ya quelque qui travaillent avec des configurations de build?OriginalL'auteur Fraser