summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt12
1 files changed, 9 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e5b5ea5..190119f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,9 +39,15 @@ if (NOT ${U_CMAKE_BUILD_TYPE} MATCHES DEBUG)
CHECK_CXX_COMPILER_FLAG("-flto" HAS_LTO_FLAG)
if (HAS_LTO_FLAG)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto")
- set(CMAKE_AR gcc-ar)
- set(CMAKE_RANLIB gcc-ranlib)
+ find_program(LTO_AR NAMES "${CMAKE_C_COMPILER}-ar" gcc-ar)
+ find_program(LTO_RANLIB NAMES "${CMAKE_C_COMPILER}-ranlib" gcc-ranlib)
+ if (LTO_AR AND LTO_RANLIB)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto")
+ set(CMAKE_AR "${LTO_AR}")
+ set(CMAKE_RANLIB "${LTO_RANLIB}")
+ else()
+ message(STATUS "gcc-ar or gcc-ranlib not found, disabling LTO")
+ endif()
endif()
endif()