Adicionando opções de linha de comando ao CMake


111

Estou construindo uma grande biblioteca usando o CMake e gostaria que os usuários pudessem habilitar / desabilitar seletivamente certas partes do meu processo de compilação.

Como posso adicionar opções de linha de comando à minha construção CMake, por exemplo, para que os usuários possam digitar algo como cmake --build-partone --nobuild-parttwo --dothis=true --dothat=false ..?

Aparentemente, a palavra-chave OPTION criará variáveis ​​que podem ser definidas na GUI do CMake, mas não consigo descobrir como fazer isso na linha de comando.


Obrigado pela sua pergunta, uma vez que respondeu à minha pergunta com relação ao propósito da opção cmake. Então, vejo que agora é para GUI
truthadjustr

Respostas:


161

Sim, você deve usar o optioncomando. Você pode definir opções na linha de comando desta maneira:

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

//Command line
cmake -DMyOption=ON MyProjectFolder

Observe que -DMyOptiondeve vir antes do caminho.


5
... e cmake MyProjectFolder -DMyOptionnão liga (ou desliga) a opção
mabraham

coloque -DMyOption antes de MyProjectFolder e tente?
updogliu

11
Use -DMyOption=ONou -DMyOption=OFFpara ligar ou desligar.
kvanberendonck 01 de

Acabei de notar, enquanto estava tentando construir um módulo de terceiros, que os itens definidos com "set (NAME blahblah)" em CMakeLists.txt são substituíveis por -DNAME = overridingValue na linha de comando cmake,
peterk

13

Apenas uma pequena correção:

Se você tem outras variáveis ​​para passar, é recomendável indicar o tipo delas:

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

//Command line
cmake -DMyOption:BOOL=ON MyProjectFolder -D...
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.