CMake: распечатать все доступные переменные в скрипте - PullRequest
187 голосов
/ 15 февраля 2012

Мне интересно, есть ли способ распечатать все доступные переменные в CMake. Меня не интересуют переменные CMake - как и опция --help-variable. Я говорю о моих переменных, которые я определил, или переменных, определенных включенными сценариями.

В настоящее время я включаю

INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityCXX.cmake)

И я надеялся, что смогу просто распечатать все переменные, которые есть здесь, вместо того, чтобы просматривать все файлы и читать то, что было доступно - я могу найти некоторые переменные, о которых я не знал, которые могут быть полезны , Было бы хорошо, чтобы помочь обучению и открытию. Это строго для отладки / разработки.

Это похоже на вопрос в Вывести все локальные переменные, доступные для текущей области в Lua , но для CMake!

Кто-нибудь делал это?

Ответы [ 3 ]

318 голосов
/ 17 февраля 2012

Используя функцию get_cmake_property , следующий цикл выведет все определенные переменные CMake и их значения:

get_cmake_property(_variableNames VARIABLES)
list (SORT _variableNames)
foreach (_variableName ${_variableNames})
    message(STATUS "${_variableName}=${${_variableName}}")
endforeach()

Для печати переменных среды используйте командный режим CMake :

execute_process(COMMAND "${CMAKE_COMMAND}" "-E" "environment")
157 голосов
/ 17 сентября 2013

Другой способ - просто использовать:

cmake -LAH

Из справочной страницы :

-L[A][H]

Список не продвинутых кэшированных переменных.

Список переменных кэша запустит CMake и выведет список всех переменных из кэша CMake, которые не помечены как ВНУТРЕННИЕ или ДОП. Это будет эффективно отображать текущие настройки CMake [...].

Если задано A, то на нем также будут отображаться дополнительные переменные.

Если указан H, для каждой переменной также будет отображаться справка.

7 голосов

ccmake - это хорошая интерактивная опция для интерактивной проверки кэшированных переменных (option( или set( CACHE:

sudo apt-get install cmake-curses-gui
mkdir build
cd build
cmake ..
ccmake ..

image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...