CMP0127¶
Added 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.
It may be set by cmake_policy()
or cmake_minimum_required()
.
If it is not set, CMake warns, and uses OLD
behavior.
Note
The OLD
behavior of a policy is
deprecated by definition
and may be removed in a future version of CMake.