gpt4 book ai didi

CMake:打印出脚本中所有可访问的变量

转载 作者:行者123 更新时间:2023-12-03 04:10:15 24 4
gpt4 key购买 nike

我想知道是否有办法打印出 CMake 中所有可访问的变量。我对 CMake 变量不感兴趣 - 如 --help-variables 选项中那样。我正在谈论我定义的变量,或者由包含的脚本定义的变量。

我目前包括:

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

我希望我可以打印出这里的所有变量,而不必遍历所有文件并阅读可用的内容 - 我可能会发现一些我不知道的变量可能有用。帮助学习和发现会很好。它严格用于调试/开发。

这类似于 Print all local variables accessible to the current scope in Lua中的问题,但是对于 CMake!

有人做过吗?

最佳答案

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

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

这也可以嵌入到一个方便的函数中,该函数可以选择使用正则表达式来仅打印具有匹配名称的变量子集

function(dump_cmake_variables)
get_cmake_property(_variableNames VARIABLES)
list (SORT _variableNames)
foreach (_variableName ${_variableNames})
if (ARGV0)
unset(MATCHED)
string(REGEX MATCH ${ARGV0} MATCHED ${_variableName})
if (NOT MATCHED)
continue()
endif()
endif()
message(STATUS "${_variableName}=${${_variableName}}")
endforeach()
endfunction()

要打印环境变量,请使用 CMake 的 command mode :

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

关于CMake:打印出脚本中所有可访问的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9298278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com