Добавление параметров командной строки в CMake


111

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

Как я могу добавить параметры командной строки в мою сборку CMake, например, чтобы пользователи могли вводить что-то вроде cmake --build-partone --nobuild-parttwo --dothis=true --dothat=false ..?

Очевидно, ключевое слово OPTION создаст переменные, которые можно установить из графического интерфейса CMake, но я не могу понять, как это сделать из командной строки.


Спасибо за ваш вопрос, так как он ответил на мой вопрос относительно цели опции cmake. Итак, теперь я вижу, что это для графического интерфейса
truthadjustr

Ответы:


161

Да, тебе следует использовать optionкоманду. Вы можете установить параметры из командной строки следующим образом:

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

//Command line
cmake -DMyOption=ON MyProjectFolder

Обратите внимание, что это -DMyOptionдолжно предшествовать пути.


5
... и cmake MyProjectFolder -DMyOptionне включает (или выключает)
опцию

поставить -DMyOption перед MyProjectFolder и попробовать?
апдоглю

11
Используйте -DMyOption=ONили -DMyOption=OFFдля включения или выключения.
kvanberendonck 01

Я только что заметил, когда пытался создать сторонний модуль, в котором элементы, установленные с помощью "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.