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