CMAKE: imprime todas las variables accesibles en un script

Me pregunto si hay una forma de imprimir todas las variables accesibles en CMAKE. No estoy interesado en las variables CMAKE, como en la opción –help-variables. Estoy hablando de mis variables que definí, o las variables definidas por los scripts incluidos.

Actualmente estoy incluyendo

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

y esperaba poder simplemente imprimir todas las variables que están aquí, en lugar de tener que revisar todos los archivos y leer lo que estaba disponible; es posible que encuentre algunas variables que no conozco que pueden ser útiles. Sería bueno ayudar a aprender y descubrir. Es estrictamente para la depuración / desarrollo.

similar a la pregunta en Imprimir todas las variables locales accesibles para el scope actual en Lua pero para cmake!

¿Alguien ha hecho esto?

Usando la función get_cmake_property , el siguiente ciclo imprimirá todas las variables de CMake definidas y sus valores:

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

Para imprimir variables de entorno use el modo de comando de cmake:

 execute_process(COMMAND "${CMAKE_COMMAND}" "-E" "environment") 

Otra forma es simplemente usar:

 cmake -LAH 

De la página de manual :

-L[A][H]

Listar variables en caché no avanzadas.

Las variables de caché de lista ejecutarán CMake y listarán todas las variables del caché de CMake que no estén marcadas como INTERNAS o AVANZADAS. Esto mostrará efectivamente la configuración actual de CMake […].

Si se especifica A, entonces mostrará también variables avanzadas.

Si se especifica H, también mostrará ayuda para cada variable.

ccmake es una buena opción interactiva para inspeccionar interactivamente las variables almacenadas en caché ( option( o set( CACHE :

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