Cmake入门之——Unset方法(七)
一 概述
set方法用于给变量设置值,同理,unset方法用于给变量清空值,其中变量的取值为以下三种:
- 一般变量(Normal Variable)
- 缓存变量(Cache Variable)
- 环境变量(Environment Variable)
二 unset方法说明
2.1 一般变量(Normal Variable)
1 | unset(<variable> PARENT_SCOPE) |
- variable:设置要清除的变量名
- PARENT_SCOPE(可选):如果set方法设置了PARENT_SCOPE,清除时,也请带上PARENT_SCOPE
2.2 缓存变量(Cache Variable)
1 | unset(<variable> CACHE) |
- variable:设置要清除的变量名
- 对于缓存变量清除,带上CACHE
2.3 环境变量(Environment Variable)
1 | unset(ENV{<variable>}) |
- ENV:Environment的简写,是环境变量的意思
- variable:设置要清除的变量名
三 示例
3.1 一般变量(Normal Variable)
CMakeList.txt中设置
1
2
3
4
5#normal
set(normal "normal" )
message(WARNING ${normal})
unset(normal)
message(WARNING ${normal})Debug信息
1
2
3
4CMake Warning at CMakeLists.txt:11 (message):
normal
CMake Warning at CMakeLists.txt:13 (message):#因为调用了unset,没有信息输出
3.2 缓存变量(Cache Variable)
CMakeList.txt中设置
1
2
3
4
5
6
7
8
9
10
11
12
13
14set(string cmake CACHE STRING "string")#没有多次使用set,导致覆盖variable
message(WARNING ${string})
#unset(string)
unset(string CACHE)
message(WARNING ${string})
set(normalCache "normalCache")#多次使用set,导致覆盖variable
set(normalCache "NewnormalCache" CACHE STRING "string")
message(WARNING ${normalCache})
#unset(normalCache)
unset(normalCache CACHE)
message(WARNING ${normalCache})Debu信息(set方法使用了Cache,清除时unset,也需要使用Cache)
1
2
3
4
5
6
7
8
9CMake Warning at CMakeLists.txt:18 (message):
cmake
CMake Warning at CMakeLists.txt:21 (message):
CMake Warning at CMakeLists.txt:27 (message):
NewnormalCache
CMake Warning at CMakeLists.txt:30 (message):
3.3 环境变量(Environment Variable)
CMakeList.txt中设置
1
2
3
4
5##unset(ENV)
set(ENV{DEFINE} DEFINE) #自定义的变量
message(WARNING $ENV{DEFINE})
unset(ENV{DEFINE})
message(WARNING $ENV{DEFINE})Debug信息
1
2
3
4CMake Warning at CMakeLists.txt:35 (message):
DEFINE
CMake Warning at CMakeLists.txt:37 (message):
四 参考
- Documentation>>cmake-command>>unset