CMake 有关于initial-cache - 脚本的概念,它在 main 之前执行CMakeLists.txt
并且可以填充缓存的参数(和选项)。cmake(1) 文档中对应选项的描述:
-C <initial-cache>
预加载脚本以填充缓存。
当 cmake 第一次在空的构建树中运行时,它会创建一个CMakeCache.txt文件并使用项目的可自定义设置填充它。此选项可用于指定在第一次通过项目的 cmake 列表文件之前从中加载缓存条目的文件。加载的条目优先于项目的默认值。给定文件应该是包含使用CACHE选项的SET命令的 CMake 脚本,而不是缓存格式文件。
因此,您可以为项目 A 创建配置文件,例如:
conf/projectA.cmake:
option(feature1 "Feature 1" ON)
option(feature2 "Feature 2" OFF)
option(feature3 "Feature 3" OFF)
并使用它
cmake -C <src-dir>/conf/projectA_conf.cmake <src-dir>
请注意,与 Linux 内核的配置文件不同,这种方式可以只存储初始(默认)配置。用户执行的所有缓存修改仅存储在配置文件中CMakeCache.txt
,不会反映回配置文件。