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

CMake get a cache variables list from inside a CMakeLists.txt script

我想知道是否有办法从 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脚本本身?

谢谢

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

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

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