Aggiunta di opzioni della riga di comando a CMake


111

Sto costruendo una libreria di grandi dimensioni utilizzando CMake e vorrei che gli utenti fossero in grado di abilitare / disabilitare selettivamente alcune parti del mio processo di creazione.

Come posso aggiungere opzioni della riga di comando alla build di CMake, ad esempio in modo che gli utenti possano digitare qualcosa di simile cmake --build-partone --nobuild-parttwo --dothis=true --dothat=false ..?

Apparentemente la parola chiave OPTION creerà variabili che possono essere impostate dalla GUI di CMake, ma non riesco a capire come farlo dalla riga di comando.


Grazie per la tua domanda in quanto ha risposto alla mia domanda riguardo allo scopo dell'opzione cmake. Quindi, vedo ora che è per la GUI
truthadjustr

Risposte:


161

Sì, dovresti usare il optioncomando. Puoi impostare le opzioni dalla riga di comando in questo modo:

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

//Command line
cmake -DMyOption=ON MyProjectFolder

Nota che -DMyOptiondeve precedere il percorso.


5
... e cmake MyProjectFolder -DMyOptionnon attiva (o disattiva) l'opzione
mabraham

mettere -DMyOption prima di MyProjectFolder e provare?
aggiornamento

11
Utilizzare -DMyOption=ONo -DMyOption=OFFper attivare o disattivare.
kvanberendonck

Ho appena notato mentre stavo cercando di creare un modulo di terze parti che gli elementi impostati con "set (NAME blahblah)" in CMakeLists.txt sono sovrascrivibili con -DNAME = overridingValue sulla riga di comando di cmake,
peterk

13

Solo una piccola correzione:

Se hai altre variabili da passare, si consiglia di indicare il tipo di queste:

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

//Command line
cmake -DMyOption:BOOL=ON MyProjectFolder -D...
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.