diff options
author | Brad King <brad.king@kitware.com> | 2014-12-12 16:15:59 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2014-12-12 16:15:59 (GMT) |
commit | ccbdac21df01b3e084bd70dd3b5b4ea7337c23d0 (patch) | |
tree | d8ca5c609f093fc702a723988ae87ee5b231d151 /Help/policy | |
parent | 17f638a4c923bdf96376e8ecfe365337906a6bcc (diff) | |
parent | f2f1c95dd9a1e1b3dc6652ef2afb7ca74c0c986f (diff) | |
download | CMake-ccbdac21df01b3e084bd70dd3b5b4ea7337c23d0.zip CMake-ccbdac21df01b3e084bd70dd3b5b4ea7337c23d0.tar.gz CMake-ccbdac21df01b3e084bd70dd3b5b4ea7337c23d0.tar.bz2 |
Merge topic 'doc-CMP0054-example'
f2f1c95d Help: Extend policy CMP0054 documentation with an example
Diffstat (limited to 'Help/policy')
-rw-r--r-- | Help/policy/CMP0054.rst | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/Help/policy/CMP0054.rst b/Help/policy/CMP0054.rst index dffee5e..39f0c40 100644 --- a/Help/policy/CMP0054.rst +++ b/Help/policy/CMP0054.rst @@ -3,15 +3,43 @@ 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`. +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 |