summaryrefslogtreecommitdiff
path: root/Help/manual/cmake-language.7.rst
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2014-05-01 14:47:18 -0400
committerBrad King <brad.king@kitware.com>2014-05-08 13:24:50 -0400
commit6804cd042e367954c9cf8d52392f1c3f59aaed70 (patch)
treec9f2648e3784dca911c78e3c796668c478934e94 /Help/manual/cmake-language.7.rst
parent411f77d14f0cea36aeaf04b01d3fdf2ea7ec2173 (diff)
downloadcmake-6804cd042e367954c9cf8d52392f1c3f59aaed70.tar.gz
Help: Add documentation on escaping changes with CMP0053
Diffstat (limited to 'Help/manual/cmake-language.7.rst')
-rw-r--r--Help/manual/cmake-language.7.rst19
1 files changed, 13 insertions, 6 deletions
diff --git a/Help/manual/cmake-language.7.rst b/Help/manual/cmake-language.7.rst
index 5bbe16ebc1..b83dcad4b3 100644
--- a/Help/manual/cmake-language.7.rst
+++ b/Help/manual/cmake-language.7.rst
@@ -296,16 +296,18 @@ An *escape sequence* is a ``\`` followed by one character:
.. productionlist::
escape_sequence: `escape_identity` | `escape_encoded` | `escape_semicolon`
- escape_identity: '\(' | '\)' | '\#' | '\"' | '\ ' |
- : '\\' | '\$' | '\@' | '\^'
+ escape_identity: '\' <match '[^A-Za-z0-9;]'>
escape_encoded: '\t' | '\r' | '\n'
escape_semicolon: '\;'
-A ``\`` followed by one of ``()#" \#@^`` simply encodes the literal
+A ``\`` followed by a non-alphanumeric character simply encodes the literal
character without interpreting it as syntax. A ``\t``, ``\r``, or ``\n``
-encodes a tab, carriage return, or newline character, respectively.
-A ``\;`` encodes itself but may be used in an `Unquoted Argument`_
-to encode the ``;`` without dividing the argument value on it.
+encodes a tab, carriage return, or newline character, respectively. A ``\;``
+outside of any `Variable References`_ encodes itself but may be used in an
+`Unquoted Argument`_ to encode the ``;`` without dividing the argument
+value on it. A ``\;`` inside `Variable References`_ encodes the literal
+``;`` character. (See also policy :policy:`CMP0053` documentation for
+historical considerations.)
.. _`Variable References`:
@@ -319,6 +321,11 @@ or by the empty string if the variable is not set.
Variable references can nest and are evaluated from the
inside out, e.g. ``${outer_${inner_variable}_variable}``.
+Literal variable references may consist of alphanumeric characters,
+the characters ``/_.+-``, and `Escape Sequences`_. Nested references
+may be used to evaluate variables of any name. (See also policy
+:policy:`CMP0053` documentation for historical considerations.)
+
The `Variables`_ section documents the scope of variable names
and how their values are set.