mirror of
				https://github.com/isar/libmdbx.git
				synced 2025-10-30 03:08:57 +08:00 
			
		
		
		
	mdbx-cmake: синхронизация LTO-рецептов.
This commit is contained in:
		| @@ -241,17 +241,16 @@ else() | ||||
|     option(BUILD_FOR_NATIVE_CPU "Generate code for the compiling machine CPU" OFF) | ||||
|   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) | ||||
|   else() | ||||
|     set(INTERPROCEDURAL_OPTIMIZATION_DEFAULT OFF) | ||||
|   endif() | ||||
|  | ||||
|   if(CMAKE_INTERPROCEDURAL_OPTIMIZATION_AVAILABLE | ||||
|       OR GCC_LTO_AVAILABLE OR MSVC_LTO_AVAILABLE OR | ||||
|       (CLANG_LTO_AVAILABLE AND | ||||
|         ((DEFINED MDBX_ENABLE_TESTS AND NOT MDBX_ENABLE_TESTS) | ||||
|         OR NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.0))) | ||||
|       OR GCC_LTO_AVAILABLE OR MSVC_LTO_AVAILABLE OR CLANG_LTO_AVAILABLE) | ||||
|     option(INTERPROCEDURAL_OPTIMIZATION "Enable interprocedural/LTO optimization" ${INTERPROCEDURAL_OPTIMIZATION_DEFAULT}) | ||||
|   else() | ||||
|     set(INTERPROCEDURAL_OPTIMIZATION OFF) | ||||
| @@ -261,14 +260,25 @@ else() | ||||
|     if(GCC_LTO_AVAILABLE) | ||||
|       set(LTO_ENABLED TRUE) | ||||
|       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_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") | ||||
|     elseif(CLANG_LTO_AVAILABLE) | ||||
|       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_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_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") | ||||
|     elseif(MSVC_LTO_AVAILABLE) | ||||
|       set(LTO_ENABLED TRUE) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user