diff --git a/CMakeLists.txt b/CMakeLists.txt
index 190119f93646a65e4ebb1f5d211b0107defe67ef..630685287dab154eaf1879762588fa3bd102200e 100644 (file)
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(kms++)
+include(LTO.cmake)
+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
# static link libc
# set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
+check_lto()
+
if (NOT ${U_CMAKE_BUILD_TYPE} MATCHES DEBUG)
- CHECK_CXX_COMPILER_FLAG("-flto" HAS_LTO_FLAG)
-
- if (HAS_LTO_FLAG)
- 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()
+ if (LTO_WORKS)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto")
+ set(CMAKE_AR "${LTO_AR}")
+ set(CMAKE_RANLIB "${LTO_RANLIB}")
endif()
endif()