Преглед на файлове

Merge topic 'document_cache_variable_checking'

4d384d290e Help: Document the $CACHE{} syntax

Acked-by: Kitware Robot <[email protected]>
Merge-request: !2269
Brad King преди 7 години
родител
ревизия
24f226e2d3

+ 7 - 0
Help/manual/cmake-language.7.rst

@@ -399,6 +399,11 @@ and how their values are set.
 
 An *environment variable reference* has the form ``$ENV{VAR}`` and
 is evaluated in the same contexts as a normal variable reference.
+See :variable:`ENV` for more information.
+
+A *cache variable reference* has the form ``$CACHE{VAR}`` and
+is evaluated in the same contexts as a normal variable reference.
+See :variable:`CACHE` for more information.
 
 Comments
 --------
@@ -543,6 +548,8 @@ to the binding in the current directory scope, if any.  If a
 is found, or no binding is found, CMake then searches for a
 cache entry.  If a cache entry is found, its value is used.
 Otherwise, the variable reference evaluates to an empty string.
+The ``$CACHE{VAR}`` syntax can be used to do direct cache entry
+lookups.
 
 The :manual:`cmake-variables(7)` manual documents many variables
 that are provided by CMake or have meaning to CMake when set

+ 1 - 0
Help/manual/cmake-variables.7.rst

@@ -230,6 +230,7 @@ Variables that Describe the System
    /variable/ANDROID
    /variable/APPLE
    /variable/BORLAND
+   /variable/CACHE
    /variable/CMAKE_CL_64
    /variable/CMAKE_COMPILER_2005
    /variable/CMAKE_HOST_APPLE

+ 17 - 0
Help/variable/CACHE.rst

@@ -0,0 +1,17 @@
+CACHE
+-----
+
+Read cache variables.
+
+Use the syntax ``$CACHE{VAR}`` to read cache entry ``VAR``.
+See the :ref:`cmake-language(7) variables <CMake Language Variables>`
+documentation for more complete documentation of the interaction of
+normal variables and cache entries.
+
+When evaluating :ref:`Variable References` of the form ``${VAR}``,
+CMake first searches for a normal variable with that name, and if not
+found CMake will search for a cache entry with that name.
+The ``$CACHE{VAR}`` syntax can be used to do direct cache lookup and
+ignore any existing normal variable.
+
+See the :command:`set` command to see how to write cache variables.

+ 4 - 3
Help/variable/ENV.rst

@@ -1,7 +1,8 @@
 ENV
 ---
 
-Access environment variables.
+Read environment variables.
 
-Use the syntax ``$ENV{VAR}`` to read environment variable ``VAR``.  See also
-the :command:`set` command to set ``ENV{VAR}``.
+Use the syntax ``$ENV{VAR}`` to read environment variable ``VAR``.
+
+See the :command:`set` command to see how to write environment variables.

+ 2 - 0
Tests/RunCMake/Syntax/QueryCache-stderr.txt

@@ -0,0 +1,2 @@
+-->cache value<--
+-->local value<--

+ 6 - 0
Tests/RunCMake/Syntax/QueryCache.cmake

@@ -0,0 +1,6 @@
+
+set(query_var "cache value" CACHE STRING "")
+set(query_var "local value")
+
+message("-->$CACHE{query_var}<--")
+message("-->${query_var}<--")

+ 3 - 0
Tests/RunCMake/Syntax/RunCMakeTest.cmake

@@ -112,6 +112,9 @@ run_cmake(CMP0053-NameWithCarriageReturnQuoted)
 run_cmake(CMP0053-NameWithEscapedSpacesQuoted)
 run_cmake(CMP0053-NameWithEscapedTabsQuoted)
 
+# Variable special types
+run_cmake(QueryCache)
+
 # Function and macro tests.
 run_cmake(FunctionUnmatched)
 run_cmake(FunctionUnmatchedForeach)