On this page
CMP0127
New in version 3.22.
cmake_dependent_option()
supports full Condition Syntax.
The <depends>
parameter accepts a semicolon-separated list 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 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 3.23.3 warns when the policy is not set and uses OLD
behavior. Use the cmake_policy()
command to set it to OLD
or NEW
explicitly.
Note
The OLD
behavior of a policy is deprecated by definition
and may be removed in a future version of CMake.
© 2000–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.23/policy/CMP0127.html