#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...