Ajout d'options de ligne de commande à CMake


111

Je construis une grande bibliothèque à l'aide de CMake et j'aimerais que les utilisateurs puissent activer / désactiver de manière sélective certaines parties de mon processus de construction.

Comment puis-je ajouter des options de ligne de commande à ma version CMake, par exemple pour que les utilisateurs puissent taper quelque chose comme cmake --build-partone --nobuild-parttwo --dothis=true --dothat=false ..?

Apparemment, le mot clé OPTION créera des variables qui peuvent être définies à partir de l'interface graphique CMake, mais je ne peux pas comprendre comment faire cela à partir de la ligne de commande.


Merci pour votre question car elle a répondu à ma question concernant le but de l'option cmake. Donc, je vois maintenant que c'est pour GUI
truthadjustr

Réponses:


161

Ouais, vous devriez utiliser la optioncommande. Vous pouvez définir les options à partir de la ligne de commande de cette façon:

//CMakeLists.txt
option(MyOption "MyOption" OFF)

//Command line
cmake -DMyOption=ON MyProjectFolder

Notez que -DMyOptiondoit venir avant le chemin.


5
... et cmake MyProjectFolder -DMyOptionn'active pas (ou ne désactive pas) l'option
mabraham

mettre -DMyOption avant MyProjectFolder et faire un essai?
updogliu

11
Utilisez -DMyOption=ONou -DMyOption=OFFpour activer ou désactiver.
kvanberendonck

Je viens de remarquer que j'essayais de créer un module tiers que les éléments définis avec "set (NAME blahblah)" dans CMakeLists.txt sont remplaçables avec -DNAME = overridingValue sur la ligne de commande cmake,
peterk

13

Juste une petite correction:

Si vous avez d'autres variables à transmettre, il est recommandé d'indiquer le type de celles-ci:

//CMakeLists.txt
option(MyOption "MyOption" OFF)

//Command line
cmake -DMyOption:BOOL=ON MyProjectFolder -D...
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.