Files
CMake/Help/policy/CMP0127.rst
Brad King ad3c2c0b03 Help: Normalize and consolidate standard policy advice paragraph
Every policy's documentation has a paragraph on what version of CMake
introduced it, how to set the policy, and whether CMake warns if the
policy is not set.  The wording of this paragraph has diverged across
policies over time.  Factor the paragraph out into a standard advice
document included by every policy.
2024-01-11 14:48:01 -05:00

34 lines
986 B
ReStructuredText

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.
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.22
.. |WARNS_OR_DOES_NOT_WARN| replace:: warns
.. include:: STANDARD_ADVICE.txt
.. include:: DEPRECATED.txt