From 98d0f5605e65b222ba33106a9f7db089f34647a6 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Tue, 3 Feb 2026 11:32:15 -0700 Subject: [PATCH] enable LTO Signed-off-by: James Cherry --- CMakeLists.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index dda0ca9d..8ce05b3a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,6 +63,16 @@ message(STATUS "Build type: ${CMAKE_BUILD_TYPE}") message(STATUS "Build CXX_FLAGS: ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}}") message(STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}") +# Enable Link-Time Optimization (LTO) for Release builds. +include(CheckIPOSupported) +check_ipo_supported(RESULT ipo_supported OUTPUT ipo_error) +if(ipo_supported) + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE) + message(STATUS "IPO/LTO: enabled for Release builds") +else() + message(STATUS "IPO/LTO: not supported - ${ipo_error}") +endif() + ################################################################ # # Source files.