From c50810c07da058cc7d2cdce7693f83bd8791de8e Mon Sep 17 00:00:00 2001 From: "Marco Antonio J. Costa" Date: Fri, 27 Dec 2024 18:14:29 -0300 Subject: [PATCH] add option to enable link time optimization a bit slower to compile for developing so defaults to 'false', but might be a good idea for the releases. --- CMakeLists.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index eaff06529..6cd0d74e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,14 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) +include(CheckIPOSupported) +check_ipo_supported(RESULT LinkTimeOptimization OUTPUT IpoError LANGUAGES C CXX) +if(LinkTimeOptimization) + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) +else() + message(WARNING "IPO is not supported: ${IpoError}") +endif() + option(ADDRESS_SANITIZER OFF) if(ADDRESS_SANITIZER) message(STATUS "AddressSanitizer ENABLED for non-Release builds")