unset

取消设置变量、缓存变量或环境变量。

取消设置普通变量

unset(<variable> [PARENT_SCOPE])

从当前作用域中移除一个普通变量,使其变为未定义。

如果存在 PARENT_SCOPE,则该变量将从当前作用域的上一级作用域中移除。更多详情请参阅 set() 命令中的相同选项。

注意

当评估 变量引用(形式为 ${VAR})时,CMake 首先查找同名普通变量。如果不存在这样的普通变量,CMake 才会查找同名的缓存条目。因此,**取消设置一个普通变量可能会暴露之前被隐藏的缓存变量**。若要强制使形式为 ${VAR} 的变量引用返回空字符串,请使用 set(<variable> ""),这会清空普通变量但保持其定义状态。

取消设置缓存条目

unset(CACHE{<variable>})

版本 4.2 中添加。

从缓存中移除 <variable>,使其变为未定义。

unset(<variable> CACHE)

此签名出于兼容性目的而支持。建议优先使用其他签名。

取消设置环境变量

unset(ENV{<variable>})

从当前可用的 环境变量 中移除 <variable>。后续调用 $ENV{<variable>} 将返回空字符串。

此命令仅影响当前的 CMake 进程,而不影响调用 CMake 的进程、整个系统环境或后续构建或测试进程的环境。

另请参阅