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