| CMP0127 | |
| ------- | |
| .. versionadded:: 3.22 | |
| :command:`cmake_dependent_option` supports full :ref:`Condition Syntax`. | |
| The ``<condition>`` 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. | |
| .. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.22 | |
| .. |WARNS_OR_DOES_NOT_WARN| replace:: warns | |
| .. include:: include/STANDARD_ADVICE.rst | |
| .. include:: include/DEPRECATED.rst |