summaryrefslogtreecommitdiff
path: root/share/cmake-3.18/Help/policy/CMP0053.rst
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2020-08-03 18:43:26 -0700
committerHaibo Huang <hhb@google.com>2020-08-03 18:45:53 -0700
commit39101902db4b5a188fe464a65a537498cf16c783 (patch)
treefea6ab21867fdf149ba62f1de868c35eada6b504 /share/cmake-3.18/Help/policy/CMP0053.rst
parent0a604d875f3b623c786e4a7dc3eb0abc8940b4d7 (diff)
downloaddarwin-x86-39101902db4b5a188fe464a65a537498cf16c783.tar.gz
Upgrade cmake prebuilt to 3.18.1 [Darwin]ndk-r22-beta1ndk-r22ndk-release-r22llvm-r399163b
Built at: http://fusion/82f83f3a-9b62-4573-8934-c02475fc6689 Change-Id: I7b9e7a895cb9e13a0cf4ef8d45f6f81199f11ce6
Diffstat (limited to 'share/cmake-3.18/Help/policy/CMP0053.rst')
-rw-r--r--share/cmake-3.18/Help/policy/CMP0053.rst50
1 files changed, 50 insertions, 0 deletions
diff --git a/share/cmake-3.18/Help/policy/CMP0053.rst b/share/cmake-3.18/Help/policy/CMP0053.rst
new file mode 100644
index 0000000..032b3e5
--- /dev/null
+++ b/share/cmake-3.18/Help/policy/CMP0053.rst
@@ -0,0 +1,50 @@
+CMP0053
+-------
+
+Simplify variable reference and escape sequence evaluation.
+
+CMake 3.1 introduced a much faster implementation of evaluation of the
+:ref:`Variable References` and :ref:`Escape Sequences` documented in the
+:manual:`cmake-language(7)` manual. While the behavior is identical
+to the legacy implementation in most cases, some corner cases were
+cleaned up to simplify the behavior. Specifically:
+
+* Expansion of ``@VAR@`` reference syntax defined by the
+ :command:`configure_file` and :command:`string(CONFIGURE)`
+ commands is no longer performed in other contexts.
+
+* Literal ``${VAR}`` reference syntax may contain only
+ alphanumeric characters (``A-Z``, ``a-z``, ``0-9``) and
+ the characters ``_``, ``.``, ``/``, ``-``, and ``+``.
+ Note that ``$`` is technically allowed in the ``NEW`` behavior, but is
+ invalid for ``OLD`` behavior. This is due to an oversight during the
+ implementation of :policy:`CMP0053` and its use as a literal variable
+ reference is discouraged for this reason.
+ Variables with other characters in their name may still
+ be referenced indirectly, e.g.
+
+ .. code-block:: cmake
+
+ set(varname "otherwise & disallowed $ characters")
+ message("${${varname}}")
+
+* The setting of policy :policy:`CMP0010` is not considered,
+ so improper variable reference syntax is always an error.
+
+* More characters are allowed to be escaped in variable names.
+ Previously, only ``()#" \@^`` were valid characters to
+ escape. Now any non-alphanumeric, non-semicolon, non-NUL
+ character may be escaped following the ``escape_identity``
+ production in the :ref:`Escape Sequences` section of the
+ :manual:`cmake-language(7)` manual.
+
+The ``OLD`` behavior for this policy is to honor the legacy behavior for
+variable references and escape sequences. The ``NEW`` behavior is to
+use the simpler variable expansion and escape sequence evaluation rules.
+
+This policy was introduced in CMake version 3.1.
+CMake version |release| warns when the policy is not set and uses
+``OLD`` behavior. Use the :command:`cmake_policy` command to set
+it to ``OLD`` or ``NEW`` explicitly.
+
+.. include:: DEPRECATED.txt