Dodanie opcji wiersza poleceń do CMake


111

Buduję dużą bibliotekę za pomocą CMake i chciałbym, aby użytkownicy mogli selektywnie włączać / wyłączać niektóre części mojego procesu kompilacji.

Jak mogę dodać opcje wiersza poleceń do mojej kompilacji CMake, np. Aby użytkownicy mogli wpisać coś podobnego cmake --build-partone --nobuild-parttwo --dothis=true --dothat=false ..?

Wygląda na to, że słowo kluczowe OPTION stworzy zmienne, które można ustawić z GUI CMake, ale nie mogę dowiedzieć się, jak to zrobić z wiersza poleceń.


Dziękuję za pytanie, ponieważ odpowiadało na moje pytanie dotyczące celu opcji cmake. Więc widzę, że teraz jest to dla GUI
trueadjustr

Odpowiedzi:


161

Tak, powinieneś użyć optionpolecenia. Możesz ustawić opcje z wiersza poleceń w ten sposób:

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

//Command line
cmake -DMyOption=ON MyProjectFolder

Zauważ, że -DMyOptionmusi to nastąpić przed ścieżką.


5
... i cmake MyProjectFolder -DMyOptionnie włącza (ani nie wyłącza) opcji
mabraham

umieścić -DMyOption przed MyProjectFolder i spróbować?
updogliu

11
Użyj -DMyOption=ONlub, -DMyOption=OFFaby włączyć lub wyłączyć.
kvanberendonck

Właśnie zauważyłem, kiedy próbowałem zbudować moduł innej firmy, że elementy ustawione za pomocą „set (NAME blahblah)” w CMakeLists.txt można zastąpić -DNAME = overridingValue w wierszu poleceń cmake,
peterk

13

Tylko mała korekta:

Jeśli masz inne zmienne do przekazania, zaleca się wskazanie ich typu:

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

//Command line
cmake -DMyOption:BOOL=ON MyProjectFolder -D...
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.