| 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 |