summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
authorEvan Wilde <etceterawilde@gmail.com>2024-03-22 16:24:02 (GMT)
committerBrad King <brad.king@kitware.com>2024-04-02 14:42:12 (GMT)
commit3fb4092826319730d529563820eefdaa3449a276 (patch)
tree55bf5b2febad4bafcc580b839fcd305ca5171583 /Help
parent659bc156eff0a90c2ea3fdb3d866e07f8c0e436b (diff)
downloadCMake-3fb4092826319730d529563820eefdaa3449a276.zip
CMake-3fb4092826319730d529563820eefdaa3449a276.tar.gz
CMake-3fb4092826319730d529563820eefdaa3449a276.tar.bz2
Swift: Add CMAKE_LINKER_TYPE support
Extend commit 96a953b1ed (Add options to specify linker tool, 2023-09-27, v3.29.0-rc1~577^2) with the `CMAKE_Swift_USING_LINKER_*` variables needed to support `CMAKE_LINKER_TYPE` for Swift.
Diffstat (limited to 'Help')
-rw-r--r--Help/release/3.29.rst6
-rw-r--r--Help/variable/LINKER_PREDEFINED_TYPES.txt39
2 files changed, 28 insertions, 17 deletions
diff --git a/Help/release/3.29.rst b/Help/release/3.29.rst
index f6d829d..0e6337d 100644
--- a/Help/release/3.29.rst
+++ b/Help/release/3.29.rst
@@ -199,3 +199,9 @@ Other Changes
``perMachine`` value. Previously, without a custom WiX template,
it produced installers that would only create start menu and uninstall
entries for the current user, even though they install for all users.
+
+.. 3.29.1 (unreleased)
+
+ * The :variable:`CMAKE_LINKER_TYPE` variable and corresponding
+ :prop_tgt:`LINKER_TYPE` target property now work with compilers
+ for the ``Swift`` language.
diff --git a/Help/variable/LINKER_PREDEFINED_TYPES.txt b/Help/variable/LINKER_PREDEFINED_TYPES.txt
index 69ac1c2..3c1b7b8 100644
--- a/Help/variable/LINKER_PREDEFINED_TYPES.txt
+++ b/Help/variable/LINKER_PREDEFINED_TYPES.txt
@@ -13,39 +13,43 @@ built-in types. The pre-defined linker types are:
``SYSTEM``
Use the standard linker provided by the platform or toolchain. For example,
- this implies the Microsoft linker for all ``MSVC``-compatible compilers.
+ this implies the Microsoft linker for all MSVC-compatible compilers.
This type is supported for the following platform-compiler combinations:
- * Linux: ``GNU``, ``Clang``, ``LLVMFlang`` and ``NVIDIA`` compilers.
- * All Apple variants: ``AppleClang``, ``Clang`` and ``GNU`` compilers.
- * Windows: ``MSVC``, ``GNU``, ``Clang`` and ``NVIDIA`` compilers.
+ * Linux: ``GNU``, ``Clang``, ``LLVMFlang``, ``NVIDIA``, and ``Swift``
+ compilers.
+ * Apple platforms: ``AppleClang``, ``Clang``, ``GNU``, and ``Swift``
+ compilers.
+ * Windows: ``MSVC``, ``GNU``, ``Clang``, ``NVIDIA``, and ``Swift`` compilers.
``LLD``
Use the ``LLVM`` linker. This type is supported for the following
platform-compiler combinations:
- * Linux: ``GNU``, ``Clang``, ``LLVMFlang`` and ``NVIDIA`` compilers.
- * All Apple variants: ``Clang`` and ``AppleClang`` compilers.
- * Windows: ``GNU``, ``Clang``, ``Clang`` compilers with ``GNU`` front-end,
- ``MSVC`` and ``NVIDIA`` compilers with ``MSVC`` front-end.
+ * Linux: ``GNU``, ``Clang``, ``LLVMFlang``, ``NVIDIA``, and ``Swift``
+ compilers.
+ * Apple platforms: ``Clang``, ``AppleClang``, and ``Swift`` compilers.
+ * Windows: ``GNU``, ``Clang`` with MSVC-like front-end, ``Clang`` with
+ GNU-like front-end, ``MSVC``, ``NVIDIA`` with MSVC-like front-end,
+ and ``Swift``.
``BFD``
Use the ``GNU`` linker. This type is supported for the following
platform-compiler combinations:
- * Linux: ``GNU``, ``Clang``, ``LLVMFlang`` and ``NVIDIA`` compilers.
- * Windows: ``GNU``, ``Clang`` compilers with ``GNU`` front-end.
+ * Linux: ``GNU``, ``Clang``, ``LLVMFlang``, and ``NVIDIA`` compilers.
+ * Windows: ``GNU``, ``Clang`` with GNU-like front-end.
``GOLD``
- Supported on Linux platform with ``GNU``, ``Clang``, ``LLVMFlang`` and
- ``NVIDIA`` compilers.
+ Supported on Linux platform with ``GNU``, ``Clang``, ``LLVMFlang``,
+ ``NVIDIA``, and ``Swift`` compilers.
``MOLD``
Use the `mold linker <https://github.com/rui314/mold>`_. This type is
supported on the following platform-compiler combinations:
- * Linux: ``GNU``, ``Clang``, ``LLVMFlang`` and ``NVIDIA`` compilers.
- * All Apple variants: ``Clang`` and ``AppleClang`` compilers (acts as an
+ * Linux: ``GNU``, ``Clang``, ``LLVMFlang``, and ``NVIDIA`` compilers.
+ * Apple platforms: ``Clang`` and ``AppleClang`` compilers (acts as an
alias to the `sold linker`_).
``SOLD``
@@ -54,11 +58,12 @@ built-in types. The pre-defined linker types are:
``APPLE_CLASSIC``
Use the Apple linker in the classic behavior (i.e. before ``Xcode 15.0``).
- This type is only supported on Apple platforms with ``GNU``, ``Clang`` and
- ``AppleClang`` compilers.
+ This type is only supported on Apple platforms with ``GNU``, ``Clang``,
+ ``AppleClang``, and ``Swift`` compilers.
``MSVC``
Use the Microsoft linker. This type is only supported on the Windows
- platform with ``MSVC`` and ``Clang`` compiler with ``MSVC`` front-end.
+ platform with ``MSVC``, ``Clang`` with MSVC-like front-end, and ``Swift``
+ compilers.
.. _sold linker: https://github.com/bluewhalesystems/sold