unset¶
取消设置变量、缓存变量或环境变量。
取消设置普通变量或缓存条目¶
unset(<variable> [CACHE | PARENT_SCOPE])
从当前作用域中移除普通变量,使其变为未定义。如果存在 CACHE
,则移除的是缓存变量而不是普通变量。
如果存在 PARENT_SCOPE
,则变量将从当前作用域之上的作用域中移除。 有关更多详细信息,请参阅 set()
命令中的相同选项。
注意
当评估 变量引用 形式为 ${VAR}
时,CMake 首先搜索具有该名称的普通变量。 如果不存在这样的普通变量,CMake 将搜索具有该名称的缓存条目。 因此,取消设置普通变量可能会暴露之前隐藏的缓存变量。 要强制形式为 ${VAR}
的变量引用返回空字符串,请使用 set(<variable> "" )
,这将清除普通变量,但使其保持定义状态。
取消设置环境变量¶
unset(ENV{<variable>})
从当前可用的 环境变量
中移除 <variable>
。 后续调用 $ENV{<variable>}
将返回空字符串。
此命令仅影响当前的 CMake 进程,而不影响调用 CMake 的进程、整个系统环境或后续构建或测试进程的环境。