mirror of
https://github.com/isar/libmdbx.git
synced 2025-02-28 15:58:15 +08:00
mdbx-cmake: синхронизация LTO-рецептов.
This commit is contained in:
parent
cd616447da
commit
64d0e639c2
@ -241,17 +241,16 @@ else()
|
|||||||
option(BUILD_FOR_NATIVE_CPU "Generate code for the compiling machine CPU" OFF)
|
option(BUILD_FOR_NATIVE_CPU "Generate code for the compiling machine CPU" OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_CONFIGURATION_TYPES OR NOT CMAKE_BUILD_TYPE_UPPERCASE STREQUAL "DEBUG")
|
if((CMAKE_CONFIGURATION_TYPES OR NOT CMAKE_BUILD_TYPE_UPPERCASE STREQUAL "DEBUG")
|
||||||
|
AND (NOT CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0)
|
||||||
|
AND (NOT CMAKE_COMPILER_IS_CLANG OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.0))
|
||||||
set(INTERPROCEDURAL_OPTIMIZATION_DEFAULT ON)
|
set(INTERPROCEDURAL_OPTIMIZATION_DEFAULT ON)
|
||||||
else()
|
else()
|
||||||
set(INTERPROCEDURAL_OPTIMIZATION_DEFAULT OFF)
|
set(INTERPROCEDURAL_OPTIMIZATION_DEFAULT OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_INTERPROCEDURAL_OPTIMIZATION_AVAILABLE
|
if(CMAKE_INTERPROCEDURAL_OPTIMIZATION_AVAILABLE
|
||||||
OR GCC_LTO_AVAILABLE OR MSVC_LTO_AVAILABLE OR
|
OR GCC_LTO_AVAILABLE OR MSVC_LTO_AVAILABLE OR CLANG_LTO_AVAILABLE)
|
||||||
(CLANG_LTO_AVAILABLE AND
|
|
||||||
((DEFINED MDBX_ENABLE_TESTS AND NOT MDBX_ENABLE_TESTS)
|
|
||||||
OR NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.0)))
|
|
||||||
option(INTERPROCEDURAL_OPTIMIZATION "Enable interprocedural/LTO optimization" ${INTERPROCEDURAL_OPTIMIZATION_DEFAULT})
|
option(INTERPROCEDURAL_OPTIMIZATION "Enable interprocedural/LTO optimization" ${INTERPROCEDURAL_OPTIMIZATION_DEFAULT})
|
||||||
else()
|
else()
|
||||||
set(INTERPROCEDURAL_OPTIMIZATION OFF)
|
set(INTERPROCEDURAL_OPTIMIZATION OFF)
|
||||||
@ -261,14 +260,25 @@ else()
|
|||||||
if(GCC_LTO_AVAILABLE)
|
if(GCC_LTO_AVAILABLE)
|
||||||
set(LTO_ENABLED TRUE)
|
set(LTO_ENABLED TRUE)
|
||||||
set(CMAKE_AR ${CMAKE_GCC_AR} CACHE PATH "Path to ar program with LTO-plugin" FORCE)
|
set(CMAKE_AR ${CMAKE_GCC_AR} CACHE PATH "Path to ar program with LTO-plugin" FORCE)
|
||||||
|
set(CMAKE_C_COMPILER_AR ${CMAKE_AR} CACHE PATH "Path to ar program with LTO-plugin" FORCE)
|
||||||
|
set(CMAKE_CXX_COMPILER_AR ${CMAKE_AR} CACHE PATH "Path to ar program with LTO-plugin" FORCE)
|
||||||
set(CMAKE_NM ${CMAKE_GCC_NM} CACHE PATH "Path to nm program with LTO-plugin" FORCE)
|
set(CMAKE_NM ${CMAKE_GCC_NM} CACHE PATH "Path to nm program with LTO-plugin" FORCE)
|
||||||
set(CMAKE_RANLIB ${CMAKE_GCC_RANLIB} CACHE PATH "Path to ranlib program with LTO-plugin" FORCE)
|
set(CMAKE_RANLIB ${CMAKE_GCC_RANLIB} CACHE PATH "Path to ranlib program with LTO-plugin" FORCE)
|
||||||
|
set(CMAKE_C_COMPILER_RANLIB ${CMAKE_RANLIB} CACHE PATH "Path to ranlib program with LTO-plugin" FORCE)
|
||||||
|
set(CMAKE_CXX_COMPILER_RANLIB ${CMAKE_RANLIB} CACHE PATH "Path to ranlib program with LTO-plugin" FORCE)
|
||||||
message(STATUS "MDBX indulge Link-Time Optimization by GCC")
|
message(STATUS "MDBX indulge Link-Time Optimization by GCC")
|
||||||
elseif(CLANG_LTO_AVAILABLE)
|
elseif(CLANG_LTO_AVAILABLE)
|
||||||
set(LTO_ENABLED TRUE)
|
set(LTO_ENABLED TRUE)
|
||||||
|
if(CMAKE_CLANG_LD)
|
||||||
|
set(CMAKE_LINKER ${CMAKE_CLANG_LD} CACHE PATH "Path to lld or ld program with LTO-plugin" FORCE)
|
||||||
|
endif()
|
||||||
set(CMAKE_AR ${CMAKE_CLANG_AR} CACHE PATH "Path to ar program with LTO-plugin" FORCE)
|
set(CMAKE_AR ${CMAKE_CLANG_AR} CACHE PATH "Path to ar program with LTO-plugin" FORCE)
|
||||||
|
set(CMAKE_C_COMPILER_AR ${CMAKE_AR} CACHE PATH "Path to ar program with LTO-plugin" FORCE)
|
||||||
|
set(CMAKE_CXX_COMPILER_AR ${CMAKE_AR} CACHE PATH "Path to ar program with LTO-plugin" FORCE)
|
||||||
set(CMAKE_NM ${CMAKE_CLANG_NM} CACHE PATH "Path to nm program with LTO-plugin" FORCE)
|
set(CMAKE_NM ${CMAKE_CLANG_NM} CACHE PATH "Path to nm program with LTO-plugin" FORCE)
|
||||||
set(CMAKE_RANLIB ${CMAKE_CLANG_RANLIB} CACHE PATH "Path to ranlib program with LTO-plugin" FORCE)
|
set(CMAKE_RANLIB ${CMAKE_CLANG_RANLIB} CACHE PATH "Path to ranlib program with LTO-plugin" FORCE)
|
||||||
|
set(CMAKE_C_COMPILER_RANLIB ${CMAKE_RANLIB} CACHE PATH "Path to ranlib program with LTO-plugin" FORCE)
|
||||||
|
set(CMAKE_CXX_COMPILER_RANLIB ${CMAKE_RANLIB} CACHE PATH "Path to ranlib program with LTO-plugin" FORCE)
|
||||||
message(STATUS "MDBX indulge Link-Time Optimization by CLANG")
|
message(STATUS "MDBX indulge Link-Time Optimization by CLANG")
|
||||||
elseif(MSVC_LTO_AVAILABLE)
|
elseif(MSVC_LTO_AVAILABLE)
|
||||||
set(LTO_ENABLED TRUE)
|
set(LTO_ENABLED TRUE)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user