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.