mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-13 18:49:38 -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.
31 lines
1.2 KiB
ReStructuredText
31 lines
1.2 KiB
ReStructuredText
CMP0138
|
|
-------
|
|
|
|
.. versionadded:: 3.24
|
|
|
|
:module:`CheckIPOSupported` uses flags from calling project.
|
|
|
|
The :module:`CheckIPOSupported` module :command:`check_ipo_supported`
|
|
command compiles a test project to determine whether the toolchain
|
|
supports :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION`. CMake 3.23 and
|
|
below run the check with the default values of the
|
|
:variable:`CMAKE_<LANG>_FLAGS` and :variable:`CMAKE_<LANG>_FLAGS_<CONFIG>`
|
|
variables for the current environment and toolchain settings.
|
|
However, some projects may modify these flag variables to add
|
|
flags that affect availability of the toolchain's IPO features.
|
|
CMake 3.24 and above prefer to honor the calling project's values
|
|
for these variables. This policy provides compatibility for projects
|
|
that have not been updated to expect this behavior.
|
|
|
|
The ``OLD`` behavior for this policy is to ignore the calling
|
|
project's values of :variable:`CMAKE_<LANG>_FLAGS` and
|
|
:variable:`CMAKE_<LANG>_FLAGS_<CONFIG>`. The ``NEW`` behavior
|
|
for this policy is to use the values of those variables as
|
|
compiler flags in the test project.
|
|
|
|
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.24
|
|
.. |WARNS_OR_DOES_NOT_WARN| replace:: does *not* warn
|
|
.. include:: STANDARD_ADVICE.txt
|
|
|
|
.. include:: DEPRECATED.txt
|