mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-20 03:25:13 +00:00
Parallel linking (esp. with bfd) uses a huge chunk of memory, make it possible for users to limit the number of link jobs to at least limit the pain.
37 lines
1.4 KiB
CMake
37 lines
1.4 KiB
CMake
# Copyright (c) 2022, Andrew Kaster <akaster@serenityos.org>
|
|
# Copyright (c) 2023, Daniel Bertalan <dani@danielbertalan.dev>
|
|
#
|
|
# SPDX-License-Identifier: BSD-2-Clause
|
|
#
|
|
|
|
if (NOT APPLE AND NOT ANDROID AND NOT WIN32 AND NOT LAGOM_USE_LINKER)
|
|
find_program(LLD_LINKER NAMES "ld.lld")
|
|
if (LLD_LINKER)
|
|
message(STATUS "Using LLD to link Lagom.")
|
|
set(LAGOM_USE_LINKER "lld" CACHE STRING "" FORCE)
|
|
else()
|
|
find_program(MOLD_LINKER NAMES "ld.mold")
|
|
if (MOLD_LINKER)
|
|
message(STATUS "Using mold to link Lagom.")
|
|
set(LAGOM_USE_LINKER "mold" CACHE STRING "" FORCE)
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
if (LAGOM_USE_LINKER)
|
|
# FIXME: Move to only setting CMAKE_LINKER_TYPE once we drop support for CMake < 3.29
|
|
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.29)
|
|
string(TOUPPER ${LAGOM_USE_LINKER} linker_type)
|
|
set(CMAKE_LINKER_TYPE ${linker_type})
|
|
else()
|
|
set(LINKER_FLAG "-fuse-ld=${LAGOM_USE_LINKER}")
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LINKER_FLAG}")
|
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LINKER_FLAG}")
|
|
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${LINKER_FLAG}")
|
|
endif()
|
|
endif()
|
|
|
|
if (LAGOM_LINK_POOL_SIZE)
|
|
set_property(GLOBAL PROPERTY JOB_POOLS link_pool=${LAGOM_LINK_POOL_SIZE})
|
|
set(CMAKE_JOB_POOL_LINK link_pool CACHE STRING "Linking job pool")
|
|
endif()
|