Explorar o código

Help: Clarify the unset command

Robert Maynard %!s(int64=7) %!d(string=hai) anos
pai
achega
1a0f1a25a4
Modificáronse 1 ficheiros con 10 adicións e 3 borrados
  1. 10 3
      Help/command/unset.rst

+ 10 - 3
Help/command/unset.rst

@@ -7,9 +7,16 @@ Unset a variable, cache variable, or environment variable.
 
   unset(<variable> [CACHE | PARENT_SCOPE])
 
-Removes the specified variable causing it to become undefined.  If
-``CACHE`` is present then the variable is removed from the cache instead
-of the current scope.
+Removes a normal variable from the current scope, causing it
+to become undefined.  If ``CACHE`` is present, then a cache variable
+is removed instead of a normal variable.  Note that when evaluating
+:ref:`Variable References` of the form ``${VAR}``, CMake first searches
+for a normal variable with that name.  If no such normal variable exists,
+CMake will then search for a cache entry with that name.  Because of this
+unsetting a normal variable can expose a cache variable that was previously
+hidden.  To force a variable reference of the form ``${VAR}`` to return an
+empty string, use ``set(<variable> "")``, which clears the normal variable
+but leaves it defined.
 
 If ``PARENT_SCOPE`` is present then the variable is removed from the scope
 above the current scope.  See the same option in the :command:`set` command