1.设置普通变量
set(<variable> <value>... [PARENT_SCOPE])
- 如果
value
只有一个,将variable
设为value
- 如果没有
value
值,取消设置variable
,和unset()
效果一样 - 父级目录设置的普通变量,子级目录可以访问,反之不行
2.设置缓存变量
set(<variable> <value>... CACHE <type> <docstring> [FORCE])
CACHE
表明缓存,即全局变量,可以被所有的CMakeLists共享访问docstring
为变量说明,在cmake-gui中可以显示提示- 变量类型
type
可选下列值BOOL
: 可选值为ON\OFF
,在cmake-gui中显示为一个可选框FILEPATH
:文件位置路径,在cmake-gui中显示为一个文件路径框PATH
:文件夹位置路径,在cmake-gui中显示为一个文件路径框STRING
:一行文本,在cmake-gui中显示为一个文本框或者一个下拉的选择框INTERNAL
:一行文本,在cmake-gui中不显示,表示在整个运行过程中值保持恒定
3.清除缓存变量
如果增加了一个CACHE
后,想删掉,直接删除CmakeCache.txt文件是不行的,在cmake-gui中仍然会有缓存。
正确的做法是CMake-Gui->File->Delete Cache
,之后将CmakeLists.txt中需要删除的Cache变量删除,再执行Cmake-gui,此变量就不会在gui中显示了。