CMakeCache.txt
可以将其想象成一个配置文件(在Unix环境下,我们可以认为它等价于传递给configure的参数)。
CMakeLists.txt 中通过 set(... CACHE ...) 设置的变量
CMakeLists.txt 中的 option() 提供的选项
CMakeLists.txt 中find_package() 等find命令引入变量
命令行 cmake . -D := 定义变量
cmake 第一次运行时将生成 CMakeCache.txt 文件,我们可以通过ccmake或cmake-gui或make edit_cache对其进行编辑。
对应于命令行 -D 定义变量,-U 用来删除变量(支持globbing_expr),比如 cmake -U/*QT/* 将删除所有名字中带有QT的cache项。
变量与Cache
cmake 的变量系统远比第一眼看上去复杂:
有些变量被cache,有些则不被cache
被cache的变量
有的不能通过ccmake等进行编辑(internal)
有的(带有描述和类型)可以被编辑(external)
有的只在ccmake的 advanced 模式出现
看个例子:
SET(var1 13)
变量 var1 被设置成 13
如果 var1 在cache中已经存在,该命令不会overwrite cache中的值
SET(var1 13 ... CACHE ...)
如果cache存在该变量,使用