瀏覽代碼

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 年之前
父節點
當前提交
8ba2a8d4a4
共有 2 個文件被更改,包括 14 次插入4 次删除
  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.
 
 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
   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
 string and not dereferenced or interpreted.
 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
 -------------------
 
-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`_.
 A variable reference is replaced by the value of the variable,
 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
 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.
 
-A *cache variable reference* has the form ``$CACHE{VAR}``.
+A *cache variable reference* has the form ``$CACHE{<variable>}``.
 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
 --------