mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-16 04:02:03 -06:00
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.
48 lines
1.7 KiB
ReStructuredText
48 lines
1.7 KiB
ReStructuredText
CMP0043
|
|
-------
|
|
|
|
Ignore COMPILE_DEFINITIONS_<Config> properties
|
|
|
|
CMake 2.8.12 and lower allowed setting the
|
|
:prop_tgt:`COMPILE_DEFINITIONS_<CONFIG>` target property and
|
|
:prop_dir:`COMPILE_DEFINITIONS_<CONFIG>` directory property to apply
|
|
configuration-specific compile definitions.
|
|
|
|
Since CMake 2.8.10, the :prop_tgt:`COMPILE_DEFINITIONS` property has supported
|
|
:manual:`generator expressions <cmake-generator-expressions(7)>` for setting
|
|
configuration-dependent content. The continued existence of the suffixed
|
|
variables is redundant, and causes a maintenance burden. Population of the
|
|
:prop_tgt:`COMPILE_DEFINITIONS_DEBUG <COMPILE_DEFINITIONS_<CONFIG>>` property
|
|
may be replaced with a population of :prop_tgt:`COMPILE_DEFINITIONS` directly
|
|
or via :command:`target_compile_definitions`:
|
|
|
|
.. code-block:: cmake
|
|
|
|
# Old Interfaces:
|
|
set_property(TARGET tgt APPEND PROPERTY
|
|
COMPILE_DEFINITIONS_DEBUG DEBUG_MODE
|
|
)
|
|
set_property(DIRECTORY APPEND PROPERTY
|
|
COMPILE_DEFINITIONS_DEBUG DIR_DEBUG_MODE
|
|
)
|
|
|
|
# New Interfaces:
|
|
set_property(TARGET tgt APPEND PROPERTY
|
|
COMPILE_DEFINITIONS $<$<CONFIG:Debug>:DEBUG_MODE>
|
|
)
|
|
target_compile_definitions(tgt PRIVATE $<$<CONFIG:Debug>:DEBUG_MODE>)
|
|
set_property(DIRECTORY APPEND PROPERTY
|
|
COMPILE_DEFINITIONS $<$<CONFIG:Debug>:DIR_DEBUG_MODE>
|
|
)
|
|
|
|
The ``OLD`` behavior for this policy is to consume the content of the suffixed
|
|
:prop_tgt:`COMPILE_DEFINITIONS_<CONFIG>` target property when generating the
|
|
compilation command. The ``NEW`` behavior for this policy is to ignore the content
|
|
of the :prop_tgt:`COMPILE_DEFINITIONS_<CONFIG>` target property .
|
|
|
|
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.0
|
|
.. |WARNS_OR_DOES_NOT_WARN| replace:: warns
|
|
.. include:: STANDARD_ADVICE.txt
|
|
|
|
.. include:: DEPRECATED.txt
|