CMP0127 — CMake 3.24.2 Documentation

# 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.24.2 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.