diff options
author | Nathan Craddock <nzcraddock@gmail.com> | 2020-04-27 07:10:56 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-04-27 07:14:00 +0300 |
commit | 490c32c425e7909b8351932857a448ac953131ac (patch) | |
tree | 91fe8bc6b482c6f8aef608be2e417cf3db864420 /build_files | |
parent | 13abd3784ad0034b58cde9e15ea96d6397887dfc (diff) |
CMake: add WITH_LINKER_LLD option for unix platforms
Can give considerably faster linking, especially for debug builds.
This may be enabled by default but needs to be more thoroughly tested.
Diffstat (limited to 'build_files')
-rw-r--r-- | build_files/cmake/platform/platform_unix.cmake | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake index 050ab8f3ba1..8a89ce40432 100644 --- a/build_files/cmake/platform/platform_unix.cmake +++ b/build_files/cmake/platform/platform_unix.cmake @@ -575,6 +575,19 @@ if(CMAKE_COMPILER_IS_GNUCC) unset(LD_VERSION) endif() + if(WITH_LINKER_LLD) + execute_process( + COMMAND ${CMAKE_C_COMPILER} -fuse-ld=lld -Wl,--version + ERROR_QUIET OUTPUT_VARIABLE LD_VERSION) + if("${LD_VERSION}" MATCHES "LLD") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-ld=lld") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=lld") + else() + message(STATUS "LLD linker isn't available, using the default system linker.") + endif() + unset(LD_VERSION) + endif() + # CLang is the same as GCC for now. elseif(CMAKE_C_COMPILER_ID MATCHES "Clang") set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") |