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.27.9 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.