| CMP0127 |
| ------- |
| |
| .. versionadded:: 3.22 |
| |
| :command:`cmake_dependent_option` supports full :ref:`Condition Syntax`. |
| |
| The ``<depends>`` 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. |
| |
| This policy was introduced in CMake version 3.22. CMake version |
| |release| warns when the policy is not set and uses ``OLD`` behavior. |
| Use the :command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` |
| explicitly. |
| |
| .. include:: DEPRECATED.txt |