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

#cmake #build #preprocessor #preprocessor-directive

Вопрос:

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

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

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

Комментарии:

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

Ответ №1:

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

 //CMakeLists.txt option(MyOption "MyOption" OFF)  //Command line cmake -DMyOption=ON MyProjectFolder  

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

Комментарии:

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

2. поставьте-DMyOption перед моей проектной папкой и попробуйте?

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

4. Я только что заметил, когда пытался создать сторонний модуль, в котором элементы задаются с помощью «set(ИМЯ blahblah)» в CMakeLists.txt переопределяются с помощью-DNAME=Переопределяющее значение в командной строке cmake,

Ответ №2:

Просто небольшая поправка:

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

 //CMakeLists.txt option(MyOption "MyOption" OFF)  //Command line cmake -DMyOption:BOOL=ON MyProjectFolder -D...