summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Maynard <robert.maynard@kitware.com>2018-08-17 12:29:37 (GMT)
committerRobert Maynard <robert.maynard@kitware.com>2018-08-21 18:16:32 (GMT)
commit1a0f1a25a44005613e21591470aafecaec306202 (patch)
tree074b9b898477c6b5b39f2bd43623e6c2e3698c85
parent39cfdd65565d9be4a4a00191a6ce8168c4c49b70 (diff)
downloadCMake-1a0f1a25a44005613e21591470aafecaec306202.zip
CMake-1a0f1a25a44005613e21591470aafecaec306202.tar.gz
CMake-1a0f1a25a44005613e21591470aafecaec306202.tar.bz2
Help: Clarify the unset command
-rw-r--r--Help/command/unset.rst13
1 files changed, 10 insertions, 3 deletions
diff --git a/Help/command/unset.rst b/Help/command/unset.rst
index a1fc95c..c19dd31 100644
--- a/Help/command/unset.rst
+++ b/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