Comment puis-je liste définie faire des cibles à partir de la ligne de commande?
Je me sens presque ridicule de demander cela, mais je ne pouvais pas trouver quoi que ce soit sur ce...
Supposons que j'ai un cmake projet contenant un certain nombre d'objectifs: les bibliothèques, les fichiers exécutables, les cibles externes, ... . Comment puis-je en faire la liste à l'aide de la commande cmake interface de ligne de. Je veux une liste de choses qui sont valables pour remplacer $target
dans la ligne de commande suivante.
cmake . && cmake --build . --target $target
Beaucoup des points de bonus pour une solution qui n'utilise ni grep ni trouver ni python ni perl ni ... - vous voyez l'idée.
OriginalL'auteur Holger | 2015-06-12
Vous devez vous connecter pour publier un commentaire.
Pour Makefile générateur d'environnements de build vous pouvez utiliser
Et il y a la sortie graphique de la solution (exemple trouvé ici):
Voir aussi Générer des Graphes de Dépendance avec CMake et CMake Graphviz Sortie Cleaner.
Si vous n'avez pas
dotty
installé, vous pouvez toujours faire la cible des dépendances visibles à l'activation de GLOBAL_DEPENDS_DEBUG_MODE dans votreCMakeLists.txt
:La disadavantage ici, c'est que vous ne pouvez pas déclencher à partir de la ligne de commande. Il sera toujours montrer sur
stderr
lors de la génération de l'environnement make.Références
Merci. J'ai ajouté de l'information pour l'utilisation de la
GLOBAL_DEPENDS_DEBUG_MODE
mondiale de la propriété. Qui va travailler sansdotty
et même sans la--graphviz
option de ligne de commande. Et aussi j'étais absent cette CMake avant - j'ai l'intention de poster une demande de fonctionnalité pour un--list-all-targets
option de ligne de commande sur CMake du bug tracker. Je vous tiendrai au courant ici si je reçois des commentaires positifs.Notez que
cmake --build . --target help
est essentiellement la même quemake help
Oui, c'est une abstraction de sorte que vous n'avez pas besoin de connaître le
make
la syntaxe d'appel ou de la assurez-chemin du programme. Je l'ai utilisé ici parce qu'il travaille également avec d'autres "makefile" générateurs commenmake
,gmake
,ninja
, ...Votre deuxième lien semble être en panne 🙁
OriginalL'auteur Florian
Je pense que vous pourriez être à la recherche pour la commande
make help
.Quand je lance
make help
(après l'exécution decmake ..
) j'obtiens le résultat suivant:Vous pouvez également lire les
Makefile
que cmake auto-génère pour vous.OriginalL'auteur Olivia Stork