blob: f1e6db5f724bb8b59beca822d75eb63a4fdbb1e9 [file]
CMP0214
-------
.. versionadded:: 4.4
Honor ``CMAKE_EXE_LINKER_FLAGS`` for Swift executable targets.
CMake 3.29 introduced :policy:`CMP0157`, which provides an abstraction
for selecting the Swift compilation mode. In CMake 3.30,
:variable:`CMAKE_SHARED_LINKER_FLAGS` was accidentally honored for
Swift shared library targets when :policy:`CMP0157` is ``NEW``, but
the change went unnoticed and was not documented. The corresponding
change was not made for Swift executable targets, leaving linker flag
handling inconsistent between Swift executables and Swift shared
libraries in CMake 3.30 through 4.3.
CMake 4.4 and above prefer to honor :variable:`CMAKE_EXE_LINKER_FLAGS`
for Swift executable targets when :policy:`CMP0157` is set to ``NEW``,
restoring consistency with Swift shared library targets. This policy
provides compatibility for projects that have not been updated to
expect ``CMAKE_EXE_LINKER_FLAGS`` to be honored for Swift executables.
The ``OLD`` behavior for this policy is to not honor
:variable:`CMAKE_EXE_LINKER_FLAGS` for Swift executable targets.
The ``NEW`` behavior for this policy is to honor
:variable:`CMAKE_EXE_LINKER_FLAGS` for Swift executable targets
when :policy:`CMP0157` is set to ``NEW``.
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 4.4
.. |WARNS_OR_DOES_NOT_WARN| replace:: does *not* warn
.. include:: include/STANDARD_ADVICE.rst
.. include:: include/DEPRECATED.rst