From 62652ad9a4fbd3083b2a617a170620be7e92789b Mon Sep 17 00:00:00 2001 From: Username404 Date: Sat, 27 Aug 2022 21:59:32 +0200 Subject: [PATCH] CMakeLists.txt: Don't redefine CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE if it has already been defined Signed-off-by: Username404 --- CMakeLists.txt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 933e367..de79677 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -91,8 +91,13 @@ if (${IS_GNU} OR ${IS_CLANG}) endif() endif() -include(CheckIPOSupported) -check_ipo_supported(RESULT CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE LANGUAGES CXX) +if (NOT DEFINED CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE) + set(USER_DEFINED_INTERPROCEDURAL_OPTIMIZATION_RELEASE NO) + include(CheckIPOSupported) + check_ipo_supported(RESULT CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE LANGUAGES CXX) +else() + set(USER_DEFINED_INTERPROCEDURAL_OPTIMIZATION_RELEASE YES) +endif() if (${IS_GNU}) if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${MINIMAL_GNU} AND NOT ${IGNORE_MINIMAL_COMPILER_VERSION}) @@ -109,7 +114,7 @@ elseif(${IS_CLANG}) if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${MINIMAL_CLANG} AND NOT ${IGNORE_MINIMAL_COMPILER_VERSION}) message(FATAL_ERROR "Clang ${MINIMAL_CLANG} or higher is required.") endif() - if (${CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE} OR MINGW) # CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE is false on llvm-mingw toolchains even though it is supported + if (${CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE} OR (MINGW AND NOT USER_DEFINED_INTERPROCEDURAL_OPTIMIZATION_RELEASE)) # CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE is false on llvm-mingw toolchains even though it is supported set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -flto=thin") if (NOT DEFINED EMSCRIPTEN) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fwhole-program-vtables")