unset

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

取消设置普通变量或缓存条目

unset(<variable> [CACHE | PARENT_SCOPE])

从当前作用域中移除普通变量,使其变为未定义。如果存在 CACHE,则移除的是缓存变量而不是普通变量。

如果存在 PARENT_SCOPE,则变量将从当前作用域之上的作用域中移除。 有关更多详细信息,请参阅 set() 命令中的相同选项。

注意

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

取消设置环境变量

unset(ENV{<variable>})

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

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

参见