EVIS: Add policy CMP0053

This policy switches between the old EVIS parser and the new, faster
parser.
This commit is contained in:
Ben Boeckel
2014-04-28 14:59:11 -04:00
committed by Brad King
parent e423f1c05d
commit 25102efc1d
5 changed files with 55 additions and 0 deletions
+1
View File
@@ -104,3 +104,4 @@ All Policies
/policy/CMP0050
/policy/CMP0051
/policy/CMP0052
/policy/CMP0053
+3
View File
@@ -10,6 +10,9 @@ variable reference is an error. The OLD behavior for this policy is
to warn about the error, leave the string untouched, and continue.
The NEW behavior for this policy is to report an error.
If :policy:`CMP0053` is set to ``NEW``, this policy has no effect
and is treated as always being ``NEW``.
This policy was introduced in CMake version 2.6.3. CMake version
|release| warns when the policy is not set and uses OLD behavior. Use
the cmake_policy command to set it to OLD or NEW explicitly.
+44
View File
@@ -0,0 +1,44 @@
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 ``+``.
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.