| CMP0183 |
| ------- |
| |
| .. versionadded:: 4.0 |
| |
| :command:`add_feature_info` supports full :ref:`Condition Syntax`. |
| |
| The ``<condition>`` parameter accepts a :ref:`semicolon-separated list <CMake |
| Language Lists>` of conditions. CMake 3.31 and lower evaluate each |
| ``condition`` as ``if(${condition})``, which does not properly handle |
| conditions with nested paren groups. CMake 4.0 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 ``CMP0183`` provides compatibility for projects that have not |
| been updated to expect the new behavior. |
| |
| .. |INTRODUCED_IN_CMAKE_VERSION| replace:: 4.0 |
| .. |WARNS_OR_DOES_NOT_WARN| replace:: warns |
| .. include:: include/STANDARD_ADVICE.rst |
| |
| .. include:: include/DEPRECATED.rst |