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

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

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

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


person rcv    schedule 13.05.2011    source источник
comment
Спасибо за ваш вопрос, так как он ответил на мой вопрос относительно цели опции cmake. Итак, теперь я вижу, что это для графического интерфейса   -  person eigenfield    schedule 04.08.2020


Ответы (2)


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

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

//Command line
cmake -DMyOption=ON MyProjectFolder

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

person beduin    schedule 14.05.2011
comment
... и cmake MyProjectFolder -DMyOption не включает (или выключает) эту опцию - person mabraham; 26.03.2013
comment
поставить -DMyOption перед MyProjectFolder и попробовать? - person updogliu; 16.02.2014
comment
Используйте -DMyOption=ON или -DMyOption=OFF для включения или выключения. - person kvanbere; 01.11.2014
comment
Я только что заметил, когда пытался создать сторонний модуль, элементы, установленные с помощью set (NAME blahblah) в CMakeLists.txt, можно переопределить с помощью -DNAME = overridingValue в командной строке cmake, - person peterk; 21.12.2018

Небольшая поправка:

Если вам нужно передать другие переменные, рекомендуется указать их тип:

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

//Command line
cmake -DMyOption:BOOL=ON MyProjectFolder -D...
person guilloptero    schedule 04.04.2015