mirror of
https://github.com/reactos/CMake.git
synced 2025-02-01 17:42:41 +00:00
d582c23a47
In the `try_compile` source file signature we propagate the caller's value of `CMAKE_<LANG>_FLAGS` into the test project. Extend this to propagate `CMAKE_<LANG>_FLAGS_<CONFIG>` too instead of always using the default value in the test project. This will be useful, for example, to allow the MSVC runtime library to be changed (e.g. `-MDd` => `-MTd`). However, some projects may currently depend on this not being done, so we need to activate the behavior using a policy. This change was originally made by commit v3.6.0-rc1~160^2 (try_compile: Honor CMAKE_<LANG>_FLAGS_<CONFIG> changes, 2016-04-11) but without the policy and so had to be reverted during the 3.6 release candidate cycle. Fixes #16174.
28 lines
1.3 KiB
ReStructuredText
28 lines
1.3 KiB
ReStructuredText
CMP0066
|
|
-------
|
|
|
|
Honor per-config flags in :command:`try_compile` source-file signature.
|
|
|
|
The source file signature of the :command:`try_compile` command uses the value
|
|
of the :variable:`CMAKE_<LANG>_FLAGS` variable in the test project so that the
|
|
test compilation works as it would in the main project. However, CMake 3.6 and
|
|
below do not also honor config-specific compiler flags such as those in the
|
|
:variable:`CMAKE_<LANG>_FLAGS_DEBUG` variable. CMake 3.7 and above prefer to
|
|
honor config-specific compiler flags too. This policy provides compatibility
|
|
for projects that do not expect config-specific compiler flags to be used.
|
|
|
|
The ``OLD`` behavior of this policy is to ignore config-specific flag
|
|
variables like :variable:`CMAKE_<LANG>_FLAGS_DEBUG` and only use CMake's
|
|
built-in defaults for the current compiler and platform.
|
|
|
|
The ``NEW`` behavior of this policy is to honor config-specific flag
|
|
variabldes like :variable:`CMAKE_<LANG>_FLAGS_DEBUG`.
|
|
|
|
This policy was introduced in CMake version 3.7. Unlike most policies,
|
|
CMake version |release| does *not* warn by default when this policy
|
|
is not set and simply uses OLD behavior. See documentation of the
|
|
:variable:`CMAKE_POLICY_WARNING_CMP0066 <CMAKE_POLICY_WARNING_CMP<NNNN>>`
|
|
variable to control the warning.
|
|
|
|
.. include:: DEPRECATED.txt
|