Agregar opciones de línea de comando a CMake


111

Estoy construyendo una gran biblioteca usando CMake, y me gustaría que los usuarios pudieran habilitar / deshabilitar selectivamente ciertas partes de mi proceso de construcción.

¿Cómo puedo agregar opciones de línea de comandos a mi compilación de CMake, por ejemplo, para que los usuarios puedan escribir algo como cmake --build-partone --nobuild-parttwo --dothis=true --dothat=false ..?

Aparentemente, la palabra clave OPTION creará variables que se pueden configurar desde la GUI de CMake, pero no puedo entender cómo hacerlo desde la línea de comando.


Gracias por su pregunta, ya que respondió a mi pregunta con respecto al propósito de la opción cmake. Entonces, veo que ahora es para GUI
truthadjustr

Respuestas:


161

Sí, deberías usar el optioncomando. Puede configurar opciones desde la línea de comando de esta manera:

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

//Command line
cmake -DMyOption=ON MyProjectFolder

Tenga en cuenta que -DMyOptiondebe venir antes del camino.


5
... y cmake MyProjectFolder -DMyOptionno enciende (o apaga) la opción
mabraham

poner -DMyOption antes de MyProjectFolder y probar?
updogliu

11
Use -DMyOption=ONo -DMyOption=OFFpara encender o apagar.
kvanberendonck

Me di cuenta de que, mientras intentaba construir un módulo de terceros, los elementos configurados con "set (NAME blahblah)" en CMakeLists.txt son reemplazables con -DNAME = overridingValue en la línea de comando cmake,
peterk

13

Solo una pequeña corrección:

Si tiene otras variables para aprobar, se recomienda indicar el tipo de estas:

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

//Command line
cmake -DMyOption:BOOL=ON MyProjectFolder -D...
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.