unset

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

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

unset(<variable> [CACHE | PARENT_SCOPE])

从当前范围中取消普通变量,导致其变为未定义。如果存在 CACHE,则取消缓存变量设置,而不是普通变量设置。

如果存在 PARENT_SCOPE,则取消在上级范围中的变量设置。有关详情,请参阅 set() 命令中的相同选项。

注意

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

取消环境变量设置

unset(ENV{<variable>})

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

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

另请参阅