Back to Cmake

CMP0127

Help/policy/CMP0127.rst

4.3.21003 B
Original Source

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