[Build] Ensure clang/lld are pinned to the correct version

This commit is contained in:
Herman S.
2026-03-27 14:54:15 +09:00
parent e97d0a80c6
commit 02ca07484c
2 changed files with 21 additions and 5 deletions

View File

@@ -283,10 +283,19 @@ else()
$<$<CONFIG:Release>:_NO_DEBUG_HEAP=1>
)
add_compile_options($<$<CONFIG:Release>:-O3>)
# Link-time optimization (use lld to avoid system linker LTO plugin version mismatch)
# Link-time optimization (use lld and llvm-ar/ranlib to avoid system
# linker/archiver LTO plugin version mismatch with clang's bitcode)
add_compile_options($<$<CONFIG:Release>:-flto=thin>)
add_link_options($<$<CONFIG:Release>:-flto=thin>)
add_link_options($<$<CONFIG:Release>:-fuse-ld=lld>)
find_program(LLVM_AR NAMES llvm-ar)
find_program(LLVM_RANLIB NAMES llvm-ranlib)
if(LLVM_AR)
set(CMAKE_AR "${LLVM_AR}" CACHE FILEPATH "" FORCE)
endif()
if(LLVM_RANLIB)
set(CMAKE_RANLIB "${LLVM_RANLIB}" CACHE FILEPATH "" FORCE)
endif()
# No symbols in release on non-Windows
string(REPLACE "-g" "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
string(REPLACE "-g" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")