Bladeren bron

Help: short/long variable reference in if command

Explain that the short form of variable references
in the if command does not apply to ENV and CACHE vars.
Joachim Wuttke (l) 7 jaren geleden
bovenliggende
commit
8ba2a8d4a4
2 gewijzigde bestanden met toevoegingen van 14 en 4 verwijderingen
  1. 5 1
      Help/command/if.rst
  2. 9 3
      Help/manual/cmake-language.7.rst

+ 5 - 1
Help/command/if.rst

@@ -231,7 +231,7 @@ which is true because ``var2`` is defined to "var1" which is not a false
 constant.
 constant.
 
 
 Automatic evaluation applies in the other cases whenever the
 Automatic evaluation applies in the other cases whenever the
-above-documented signature accepts ``<variable|string>``:
+above-documented condition syntax accepts ``<variable|string>``:
 
 
 * The left hand argument to ``MATCHES`` is first checked to see if it is
 * The left hand argument to ``MATCHES`` is first checked to see if it is
   a defined variable, if so the variable's value is used, otherwise the
   a defined variable, if so the variable's value is used, otherwise the
@@ -269,3 +269,7 @@ specified in a :ref:`Quoted Argument` or a :ref:`Bracket Argument`.
 A quoted or bracketed variable or keyword will be interpreted as a
 A quoted or bracketed variable or keyword will be interpreted as a
 string and not dereferenced or interpreted.
 string and not dereferenced or interpreted.
 See policy :policy:`CMP0054`.
 See policy :policy:`CMP0054`.
+
+There is no short form for environment or cache :ref:`Variable References`.
+They can be referenced as ``$ENV{<name>}`` or ``$CACHE{<name>}``
+wherever the above-documented condition syntax accepts <variable|string>.

+ 9 - 3
Help/manual/cmake-language.7.rst

@@ -389,7 +389,7 @@ historical considerations.)
 Variable References
 Variable References
 -------------------
 -------------------
 
 
-A *variable reference* has the form ``${variable_name}`` and is
+A *variable reference* has the form ``${<variable>}`` and is
 evaluated inside a `Quoted Argument`_ or an `Unquoted Argument`_.
 evaluated inside a `Quoted Argument`_ or an `Unquoted Argument`_.
 A variable reference is replaced by the value of the variable,
 A variable reference is replaced by the value of the variable,
 or by the empty string if the variable is not set.
 or by the empty string if the variable is not set.
@@ -405,12 +405,18 @@ the ``$`` is also technically permitted but is discouraged.
 The `Variables`_ section documents the scope of variable names
 The `Variables`_ section documents the scope of variable names
 and how their values are set.
 and how their values are set.
 
 
-An *environment variable reference* has the form ``$ENV{VAR}``.
+An *environment variable reference* has the form ``$ENV{<variable>}``.
 See the `Environment Variables`_ section for more information.
 See the `Environment Variables`_ section for more information.
 
 
-A *cache variable reference* has the form ``$CACHE{VAR}``.
+A *cache variable reference* has the form ``$CACHE{<variable>}``.
 See :variable:`CACHE` for more information.
 See :variable:`CACHE` for more information.
 
 
+The :command:`if` command has a special condition syntax that
+allows for variable references in the short form ``<variable>``
+instead of ``${<variable>}``.
+However, environment and cache variables always need to be
+referenced as ``$ENV{<variable>}`` or ``$CACHE{<variable>}``.
+
 Comments
 Comments
 --------
 --------