From eec35a214dd2f8b0d18a66340e7b34e2928e1411 Mon Sep 17 00:00:00 2001 From: Martino Fontana Date: Fri, 23 Jan 2026 17:55:57 +0100 Subject: [PATCH] CMakeLists: Use `CMAKE_INTERPROCEDURAL_OPTIMIZATION` for LTO Just a simple modernization. LTO is still disabled by default. --- CMakeLists.txt | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 91b80a5718c..1a346103d1a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -377,15 +377,13 @@ if(CMAKE_SYSTEM_NAME MATCHES "Darwin") endif() if(ENABLE_LTO) - if(CMAKE_C_COMPILER_ID MATCHES "MSVC") - add_compile_options(/GL) - string(APPEND CMAKE_EXE_LINKER_FLAGS " /LTCG") + include(CheckIPOSupported) + check_ipo_supported(RESULT supported OUTPUT error) + + if(supported) + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) else() - check_and_add_flag(LTO -flto) - if(CMAKE_CXX_COMPILER_ID STREQUAL GNU) - set(CMAKE_AR gcc-ar) - set(CMAKE_RANLIB gcc-ranlib) - endif() + message(STATUS "IPO / LTO not supported: <${error}>") endif() endif()