blob: 6e64d0c17b5fdc5030293ec188146e912bf1ee8c [file] [edit]
CMP0218
-------
.. versionadded:: 4.4
The :variable:`CMAKE_WARN_DEPRECATED` and :variable:`CMAKE_ERROR_DEPRECATED`
variables are ignored.
In CMake 4.3 and below, these variables controlled whether deprecation messages
resulted in warnings, errors, or were suppressed. However, not all deprecation
messages considered the non-cache values.
CMake 4.4 introduced a new, unified system for managing
:manual:`diagnostics <cmake-diagnostics(7)>` that prefers the
:command:`cmake_diagnostic` command for manipulating diagnostic actions.
This policy provides compatibility with projects that relied on these variables
and have not been updated to be aware of the change.
The ``OLD`` behavior for this policy is to use the variables to control
deprecation messages which respected the non-cache values of these variables
in CMake 4.3 and earlier.
The ``NEW`` behavior does not ascribe any special meaning to the non-cache
values of these variables and uses the :diagnostic:`CMD_DEPRECATED` diagnostic
state to control all deprecation messages.
.. note::
The :variable:`CMAKE_WARN_DEPRECATED` and :variable:`CMAKE_ERROR_DEPRECATED`
*cache* variables are synchronized with the initial state of the
:diagnostic:`CMD_DEPRECATED` diagnostic, regardless of this policy's setting.
(The synchronization happens at a point prior to when it is possible to
manipulate policies.) However, this behavior is deprecated and will be
removed in a future version of CMake.
Any deprecation messages introduced in CMake 4.4 or later are controlled by the
:diagnostic:`CMD_DEPRECATED` diagnostic regardless of the setting of this
policy.
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 4.4
.. |WARNS_OR_DOES_NOT_WARN| replace::
warns when either variable is accessed or modified
.. include:: include/STANDARD_ADVICE.rst
.. include:: include/DEPRECATED.rst