CMake 从 CMakeLists.txt 脚本中获取缓存变量列表

Posted

技术标签:

【中文标题】CMake 从 CMakeLists.txt 脚本中获取缓存变量列表【英文标题】:CMake get a cache variables list from inside a CMakeLists.txt script 【发布时间】:2021-11-05 22:38:27 【问题描述】:

我想知道是否有办法从 CMakeLists.txt 脚本中获取缓存变量列表。我的意思是,有这样的东西:

cmake -S . -B build -DMY_VAR1=hello -DMY_VAR2=there 

并且,在我的 CMakeLists.txt 中

option(MY_VAR3 "a cache setting" ON)

有没有办法从 CMakeLists.txt 脚本本身中获取包含 MY_VAR1、MY_VAR2 和 MY_VAR3 以及所有其他缓存变量的列表 var MY_CACHE_LIST?

谢谢

【问题讨论】:

【参考方案1】:

缓存变量列表包含在目录的CACHE_VARIABLES 属性中。可以这样提取:

get_directory_property(cache_vars CACHE_VARIABLES)
message(STATUS "List of CACHE variables: $cache_vars")

除了打印这些变量的列表之外,通过使用每个变量的名称,还可以提取其值并提取Properties on Cache Entries 下列出的其他属性。

【讨论】:

以上是关于CMake 从 CMakeLists.txt 脚本中获取缓存变量列表的主要内容,如果未能解决你的问题,请参考以下文章

将 CMake 选项从命令行移动到*** CMakeLists.txt

CMAKE 3.3.2:在 CMakeLists.txt 中设置构建类型

使用 C++ 脚本自动化 CMake 构建

[forward] cmake, CMakeLists.txt梳理

CMake - 如何在打包期间阻止执行安装脚本?

cmake - 何时在CMakeLists.txt文件中包含include_directories