mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-25 16:09:42 -06:00
LLD automatically resolves newly encountered symbols using object files previously encountered. Also, the Emscripten compiler driver invokes the LLD linker with `--whole-archive ... --no-whole-archive` around all the libraries. Therefore we should not repeat any. Issue: #27232 Suggested-by: Marc Chevrier <marc.chevrier@gmail.com>
15 lines
695 B
CMake
15 lines
695 B
CMake
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
# file LICENSE.rst or https://cmake.org/licensing for details.
|
|
|
|
# This module is shared by multiple languages; use include blocker.
|
|
include_guard()
|
|
|
|
macro(__emscripten_linker_lld lang)
|
|
set(CMAKE_${lang}_LINK_LIBRARY_USING_WHOLE_ARCHIVE "-Wl,--whole-archive" "<LINK_ITEM>" "-Wl,--no-whole-archive")
|
|
set(CMAKE_${lang}_LINK_LIBRARY_USING_WHOLE_ARCHIVE_SUPPORTED TRUE)
|
|
set(CMAKE_${lang}_LINK_LIBRARY_WHOLE_ARCHIVE_ATTRIBUTES LIBRARY_TYPE=STATIC DEDUPLICATION=YES OVERRIDE=DEFAULT)
|
|
|
|
set(CMAKE_${lang}_PLATFORM_LINKER_ID LLD)
|
|
set(CMAKE_${lang}_LINK_LIBRARIES_PROCESSING ORDER=REVERSE DEDUPLICATION=ALL)
|
|
endmacro()
|