diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 18:07:22 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 18:07:22 +0000 |
commit | c04dcc2e7d834218ef2d4194331e383402495ae1 (patch) | |
tree | 7333e38d10d75386e60f336b80c2443c1166031d /cmake/modules/buildtools/LLD.cmake | |
parent | Initial commit. (diff) | |
download | kodi-c04dcc2e7d834218ef2d4194331e383402495ae1.tar.xz kodi-c04dcc2e7d834218ef2d4194331e383402495ae1.zip |
Adding upstream version 2:20.4+dfsg.upstream/2%20.4+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'cmake/modules/buildtools/LLD.cmake')
-rw-r--r-- | cmake/modules/buildtools/LLD.cmake | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/cmake/modules/buildtools/LLD.cmake b/cmake/modules/buildtools/LLD.cmake new file mode 100644 index 0000000..e77009e --- /dev/null +++ b/cmake/modules/buildtools/LLD.cmake @@ -0,0 +1,22 @@ +if(ENABLE_LLD) + execute_process(COMMAND ${CMAKE_CXX_COMPILER} -fuse-ld=lld -Wl,--version ERROR_QUIET OUTPUT_VARIABLE LD_VERSION) + if(LD_VERSION MATCHES "LLD") + include(FindPackageHandleStandardArgs) + find_program(LLD_EXECUTABLE lld) + find_package_handle_standard_args(LLD REQUIRED_VARS LLD_EXECUTABLE) + + if(LLD_FOUND) + set(CMAKE_LINKER ${LLD_EXECUTABLE}) + set(CMAKE_CXX_LINK_FLAGS -fuse-ld=lld) + set(CMAKE_C_LINK_FLAGS -fuse-ld=lld) + set(CMAKE_EXE_LINKER_FLAGS "${LD_FLAGS} -fuse-ld=lld") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") + set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") + message(STATUS "Linker: LLVM lld") + endif() + mark_as_advanced(LLD_EXECUTABLE CMAKE_LINKER) + + else() + message(FATAL_ERROR "LLVM lld linker not found") + endif() +endif() |