diff --git a/CMakeLists.txt b/CMakeLists.txt index eaff0652..6cd0d74e 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")