mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 21:31:08 -06:00
Merge branch 'document-dollar-in-varnames' into release-3.13
Merge-request: !2479
This commit is contained in:
@@ -391,8 +391,9 @@ 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.)
|
||||
may be used to evaluate variables of any name. See also policy
|
||||
:policy:`CMP0053` documentation for historical considerations and reasons why
|
||||
the ``$`` is also technically permitted but is discouraged.
|
||||
|
||||
The `Variables`_ section documents the scope of variable names
|
||||
and how their values are set.
|
||||
|
||||
@@ -16,6 +16,10 @@ cleaned up to simplify the behavior. Specifically:
|
||||
* 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.
|
||||
|
||||
|
||||
2
Tests/RunCMake/Syntax/CMP0053-Dollar-NEW-stderr.txt
Normal file
2
Tests/RunCMake/Syntax/CMP0053-Dollar-NEW-stderr.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
^-->value<--
|
||||
-->value<--$
|
||||
6
Tests/RunCMake/Syntax/CMP0053-Dollar-NEW.cmake
Normal file
6
Tests/RunCMake/Syntax/CMP0053-Dollar-NEW.cmake
Normal file
@@ -0,0 +1,6 @@
|
||||
cmake_policy(SET CMP0053 NEW)
|
||||
|
||||
set($ value)
|
||||
set(dollar $)
|
||||
message("-->${${dollar}}<--")
|
||||
message("-->${$}<--")
|
||||
1
Tests/RunCMake/Syntax/CMP0053-Dollar-OLD-result.txt
Normal file
1
Tests/RunCMake/Syntax/CMP0053-Dollar-OLD-result.txt
Normal file
@@ -0,0 +1 @@
|
||||
1
|
||||
24
Tests/RunCMake/Syntax/CMP0053-Dollar-OLD-stderr.txt
Normal file
24
Tests/RunCMake/Syntax/CMP0053-Dollar-OLD-stderr.txt
Normal file
@@ -0,0 +1,24 @@
|
||||
^CMake Deprecation Warning at CMP0053-Dollar-OLD.cmake:1 \(cmake_policy\):
|
||||
The OLD behavior for policy CMP0053 will be removed from a future version
|
||||
of CMake.
|
||||
|
||||
The cmake-policies\(7\) manual explains that the OLD behaviors of all
|
||||
policies are deprecated and that a policy should be set to OLD only under
|
||||
specific short-term circumstances. Projects should be ported to the NEW
|
||||
behavior and not rely on setting a policy to OLD.
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists.txt:3 \(include\)
|
||||
+
|
||||
-->value<--
|
||||
CMake Error at CMP0053-Dollar-OLD.cmake:6 \(message\):
|
||||
Syntax error in cmake code at
|
||||
|
||||
.*CMP0053-Dollar-OLD.cmake:6
|
||||
|
||||
when parsing string
|
||||
|
||||
-->\${\$}<--
|
||||
|
||||
syntax error, unexpected \$, expecting } \(7\)
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists.txt:3 \(include\)$
|
||||
6
Tests/RunCMake/Syntax/CMP0053-Dollar-OLD.cmake
Normal file
6
Tests/RunCMake/Syntax/CMP0053-Dollar-OLD.cmake
Normal file
@@ -0,0 +1,6 @@
|
||||
cmake_policy(SET CMP0053 OLD)
|
||||
|
||||
set($ value)
|
||||
set(dollar $)
|
||||
message("-->${${dollar}}<--")
|
||||
message("-->${$}<--")
|
||||
@@ -111,6 +111,8 @@ run_cmake(CMP0053-NameWithNewlineQuoted)
|
||||
run_cmake(CMP0053-NameWithCarriageReturnQuoted)
|
||||
run_cmake(CMP0053-NameWithEscapedSpacesQuoted)
|
||||
run_cmake(CMP0053-NameWithEscapedTabsQuoted)
|
||||
run_cmake(CMP0053-Dollar-OLD)
|
||||
run_cmake(CMP0053-Dollar-NEW)
|
||||
|
||||
# Variable special types
|
||||
run_cmake(QueryCache)
|
||||
|
||||
Reference in New Issue
Block a user