summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-09-15 14:27:36 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2014-09-15 14:27:36 (GMT)
commit9edf6903e62f84a567db3938bb8fec3f19789545 (patch)
tree889b2078804ab5f74e8e76a9e4000b9dc27479d5 /Help
parent78884b6effcb5406eb64365d6cf4b43c085f56c3 (diff)
parent858d5a0b3e52dbae635fac5a6944fba23a362f5b (diff)
downloadCMake-9edf6903e62f84a567db3938bb8fec3f19789545.zip
CMake-9edf6903e62f84a567db3938bb8fec3f19789545.tar.gz
CMake-9edf6903e62f84a567db3938bb8fec3f19789545.tar.bz2
Merge topic 'if-sanity'
858d5a0b Fix if() checks of CMAKE_SYSTEM_NAME on Cygwin e177e7af FPHSA: Avoid if() dereferencing of quoted variable 425acc52 cmcurl: Use if(DEFINED) to simplify conditions cede5cbd libarchive: Avoid depending on if() to dereference a quoted variable 2d97178b FindGTK2: Avoid depending on if() to dereference a quoted variable 0b12815d Modules/Test*.cmake: Use if(DEFINED) to simplify conditions 188a1f23 If: Introduce policy CMP0054 - don't dereference quoted variables in if() b900c1cc If: Extract cmConditionEvaluator from if() implementation
Diffstat (limited to 'Help')
-rw-r--r--Help/command/if.rst6
-rw-r--r--Help/manual/cmake-policies.7.rst1
-rw-r--r--Help/policy/CMP0054.rst18
-rw-r--r--Help/release/dev/if-sanity.rst6
4 files changed, 31 insertions, 0 deletions
diff --git a/Help/command/if.rst b/Help/command/if.rst
index a45b995..79e5d21 100644
--- a/Help/command/if.rst
+++ b/Help/command/if.rst
@@ -199,3 +199,9 @@ above-documented signature accepts ``<variable|string>``:
* The left and right hand arguments to ``AND`` and ``OR`` are independently
tested to see if they are boolean constants, if so they are used as
such, otherwise they are assumed to be variables and are dereferenced.
+
+To prevent ambiguity, potential variable or keyword names can be
+specified in a :ref:`Quoted Argument` or a :ref:`Bracket Argument`.
+A quoted or bracketed variable or keyword will be interpreted as a
+string and not dereferenced or interpreted.
+See policy :policy:`CMP0054`.
diff --git a/Help/manual/cmake-policies.7.rst b/Help/manual/cmake-policies.7.rst
index 136cf5c..f1717a0 100644
--- a/Help/manual/cmake-policies.7.rst
+++ b/Help/manual/cmake-policies.7.rst
@@ -105,3 +105,4 @@ All Policies
/policy/CMP0051
/policy/CMP0052
/policy/CMP0053
+ /policy/CMP0054
diff --git a/Help/policy/CMP0054.rst b/Help/policy/CMP0054.rst
new file mode 100644
index 0000000..dffee5e
--- /dev/null
+++ b/Help/policy/CMP0054.rst
@@ -0,0 +1,18 @@
+CMP0054
+-------
+
+Only interpret :command:`if` arguments as variables or keywords when unquoted.
+
+CMake 3.1 and above no longer 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.
+
+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.
diff --git a/Help/release/dev/if-sanity.rst b/Help/release/dev/if-sanity.rst
new file mode 100644
index 0000000..6645bc4
--- /dev/null
+++ b/Help/release/dev/if-sanity.rst
@@ -0,0 +1,6 @@
+if-sanity
+---------
+
+* The :command:`if` command no longer automatically dereferences
+ variables named in quoted or bracket arguments. See policy
+ :policy:`CMP0054`.