CMAKE:在脚本中打印所有可访问的variables

我想知道是否有办法打印出CMAKE中所有可访问的variables。 我对CMAKEvariables不感兴趣,就像在–help-variables选项中一样。 我正在谈论我定义的variables,或者包含脚本定义的variables。

我目前包括

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

并希望能打印出所有这些variables,而不是去查看所有的文件,看看有什么可用的东西 – 我可能会发现一些我不知道的variables可能是有用的。 这将有助于学习和发现。 这是严格的debugging/开发。

类似的问题在打印所有本地variables可访问的Lua当前范围,但cmake!

有没有人做过这个?

使用get_cmake_property函数,以下循环将打印出所有定义的CMakevariables及其值:

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

要打印环境variables,请使用cmake的命令模式 :

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

另一种方法是简单地使用:

 cmake -LAH 

从手册:

-L[A][H]

列出非高级的cachingvariables。

列表cachingvariables将运行CMake并列出CMakecaching中未标记为INTERNAL或ADVANCED的所有variables。 这将有效地显示当前CMake设置[…]。

如果指定了A,那么它将显示高级variables。

如果指定了H,它也将显示每个variables的帮助。

ccmake是交互式地检查cachingvariables( option(set( CACHE

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