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

111

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

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

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

RCV
источник
Спасибо за ваш вопрос, так как он ответил на мой вопрос относительно цели опции 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...
гильоптеро
источник