summaryrefslogtreecommitdiff
path: root/share/cmake-3.2/Help/policy/CMP0054.rst
diff options
context:
space:
mode:
Diffstat (limited to 'share/cmake-3.2/Help/policy/CMP0054.rst')
-rw-r--r--share/cmake-3.2/Help/policy/CMP0054.rst46
1 files changed, 46 insertions, 0 deletions
diff --git a/share/cmake-3.2/Help/policy/CMP0054.rst b/share/cmake-3.2/Help/policy/CMP0054.rst
new file mode 100644
index 0000000..39f0c40
--- /dev/null
+++ b/share/cmake-3.2/Help/policy/CMP0054.rst
@@ -0,0 +1,46 @@
+CMP0054
+-------
+
+Only interpret :command:`if` arguments as variables or keywords when unquoted.
+
+CMake 3.1 and above no longer implicitly dereference variables or
+interpret keywords in an :command:`if` command argument when
+it is a :ref:`Quoted Argument` or a :ref:`Bracket Argument`.
+
+The ``OLD`` behavior for this policy is to dereference variables and
+interpret keywords even if they are quoted or bracketed.
+The ``NEW`` behavior is to not dereference variables or interpret keywords
+that have been quoted or bracketed.
+
+Given the following partial example:
+
+::
+
+ set(MONKEY 1)
+ set(ANIMAL MONKEY)
+
+ if("${ANIMAL}" STREQUAL "MONKEY")
+
+After explicit expansion of variables this gives:
+
+::
+
+ if("MONKEY" STREQUAL "MONKEY")
+
+With the policy set to ``OLD`` implicit expansion reduces this semantically to:
+
+::
+
+ if("1" STREQUAL "1")
+
+With the policy set to ``NEW`` the quoted arguments will not be
+further dereferenced:
+
+::
+
+ if("MONKEY" STREQUAL "MONKEY")
+
+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.