Экспорт параметров cmake-gui

У меня есть библиотека с кучей различных вариантов конфигурации. Обычно мы настраиваем сборку с cmake-gui и отметив несколько флажков.

Я хочу автоматизировать это в .sh скрипт, использующий только cmake,

например
В GUI -> выделяет кучу разных опций
эквивалентная команда cmake -> cmake -D CMAKE_XXX=X -D CMAKE_XXY=XXY [a bunch of options here] ..

Как я могу найти «эквивалент» cmake командная строка для любой произвольной конфигурации, которую я выбираю из графического интерфейса?

3

Решение

Объясняется эквивалентная команда cmake для кэширования переменной Вот (-D опция). Обратите внимание, что предыдущая документация была неоднозначной, поэтому всегда проверяйте последнюю версию.

В принципе:

-D<var>:<type>=<value>

Вы также должны указать тип, чтобы переменная кэшировалась так же, как в вашей процедуре cmake-gui. Обратите внимание, что определение переменной необходимо только в первый раз: если больше не указано, будет использовано кэшированное значение.

4

Другие решения

Вы можете написать файл, содержащий все переменные, которые вы хотите установить set(<var_name> <value>) и передать этот файл в вызов CMake через -C:

cmake -C <fileWithInitialValues> <pathToSrcDir>

Документация:
https://cmake.org/cmake/help/v3.3/manual/cmake.1.html

0

У меня был тот же вопрос … и, как вы спросили, я посмотрел некоторые параметры в меню и нашел его. Инструменты меню -> Показать мои изменения

Вывод диалогового окна с полем редактирования с содержимым для параметров командной строки или параметров файла кэша.

да уж

постскриптум Я использовал cmake 3.11.1

0

cmake-gui генерирует файлы CMakeVars.txt и CMakeCache.txt в каталоге сборки, когда вы нажимаете кнопку «Настроить». Они кэшируют все переменные, которые вы настроили через графический интерфейс.

0

просто прочитайте файл с именем как CMakeCache.txt (iirc) в корне каталога сборки и посмотрите там имена переменных

-1