Додавання параметрів командного рядка до CMake


111

Я будую велику бібліотеку за допомогою CMake, і я хотів би, щоб користувачі мали можливість вибірково включати / відключати певні частини мого процесу збирання.

Як я можу додати параметри командного рядка до своєї збірки CMake, наприклад, щоб користувачі могли ввести щось на зразок cmake --build-partone --nobuild-parttwo --dothis=true --dothat=false ..?

Мабуть, ключове слово OPTION створить змінні, які можна встановити з графічного інтерфейсу CMake, але я не можу зрозуміти, як це зробити з командного рядка.


Дякую за ваше запитання, оскільки воно відповіло на моє запитання щодо призначення варіанту cmake. Отже, я бачу, це зараз для GUI
truthadjustr

Відповіді:


161

Так, ви повинні використовувати optionкоманду. Ви можете встановити параметри з командного рядка таким чином:

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

//Command line
cmake -DMyOption=ON MyProjectFolder

Зверніть увагу, що -DMyOptionповинно бути перед шляхом.


5
... і cmake MyProjectFolder -DMyOptionне вмикає опцію (або вимикає)
mabraham

поставити -DMyOption перед MyProjectFolder і спробувати?
updogliu

11
Використовуйте -DMyOption=ONабо -DMyOption=OFFщоб увімкнути або вимкнути.
kvanberendonck

Я щойно помітив, як я намагався створити модуль сторонньої сторони, що елементи, встановлені з "set (NAME blahblah)" у CMakeLists.txt, можна перезаписати з -DNAME = overridingValue в командному рядку cmake,
peterk

13

Лише невелика корекція:

Якщо у вас є інші змінні для передачі, рекомендується вказати їх тип:

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

//Command line
cmake -DMyOption:BOOL=ON MyProjectFolder -D...
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.