diff options
author | Brad King <brad.king@kitware.com> | 2014-09-15 14:27:36 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2014-09-15 14:27:36 (GMT) |
commit | 9edf6903e62f84a567db3938bb8fec3f19789545 (patch) | |
tree | 889b2078804ab5f74e8e76a9e4000b9dc27479d5 /Help | |
parent | 78884b6effcb5406eb64365d6cf4b43c085f56c3 (diff) | |
parent | 858d5a0b3e52dbae635fac5a6944fba23a362f5b (diff) | |
download | CMake-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.rst | 6 | ||||
-rw-r--r-- | Help/manual/cmake-policies.7.rst | 1 | ||||
-rw-r--r-- | Help/policy/CMP0054.rst | 18 | ||||
-rw-r--r-- | Help/release/dev/if-sanity.rst | 6 |
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`. |