diff options
author | Daniel Schürmann <daschuer@mixxx.org> | 2021-08-29 21:05:38 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-09-10 13:46:55 (GMT) |
commit | 059b90a0b4760c3c0bb761870be2a0811f80ce70 (patch) | |
tree | 78875945c1e64300ad5a1d2a40811ef4bb2389af /Help/policy | |
parent | ed9abd99772cbdcb2e4dd195eb4a62104ce86c95 (diff) | |
download | CMake-059b90a0b4760c3c0bb761870be2a0811f80ce70.zip CMake-059b90a0b4760c3c0bb761870be2a0811f80ce70.tar.gz CMake-059b90a0b4760c3c0bb761870be2a0811f80ce70.tar.bz2 |
CMakeDependentOption: Introduce policy CMP0127 for full Condition Syntax
Fixes: #22303
Diffstat (limited to 'Help/policy')
-rw-r--r-- | Help/policy/CMP0127.rst | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Help/policy/CMP0127.rst b/Help/policy/CMP0127.rst new file mode 100644 index 0000000..8560bbf --- /dev/null +++ b/Help/policy/CMP0127.rst @@ -0,0 +1,32 @@ +CMP0127 +------- + +:command:`cmake_dependent_option` supports full :ref:`Condition Syntax`. + +The ``<depends>`` parameter accepts a :ref:`semicolon-separated list <CMake +Language Lists>` of conditions. CMake 3.21 and lower evaluates each +``condition`` as ``if(${condition})``, which does not properly handle +conditions with nested paren groups. CMake 3.22 and above instead prefer +to evaluate each ``condition`` as ``if(<condition>)``, where ``<condition>`` +is re-parsed as if literally written in a call to :command:`if`. This +allows expressions like:: + + "A AND (B OR C)" + +but requires expressions like:: + + "FOO MATCHES (UPPER|lower)" + +to be re-written as:: + + "FOO MATCHES \"(UPPER|lower)\"" + +Policy ``CMP0127`` provides compatibility for projects that have not +been updated to expect the new behavior. + +This policy was introduced in CMake version 3.22. 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. + +.. include:: DEPRECATED.txt |