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ń.

rcv
źródło
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ą.

beduin
źródło
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...
guilloptero
źródło