From fa46ba16bfab6884864eb63936e5b61fa0a8b6bd Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Fri, 25 Sep 2020 22:00:53 +1000 Subject: [PATCH] CMake: Re-enable LTO for Release builds with CMake >= 3.9 If you're using an earlier version, I suggest you upgrade, CMake 3.9 was released in 2017.... --- CMakeLists.txt | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 07c85f387..861662dd0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -145,7 +145,19 @@ if(MSVC) # Enable LTO/LTCG on Release builds. if(${CMAKE_BUILD_TYPE} STREQUAL "Release") - set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) + if (${CMAKE_VERSION} VERSION_LESS "3.9.0") + message(WARNING "CMake version is less than 3.9.0, we can't enable LTCG/IPO. This will make the build slightly slower, consider updating your CMake version.") + else() + cmake_policy(SET CMP0069 NEW) + include(CheckIPOSupported) + check_ipo_supported(RESULT IPO_IS_SUPPORTED) + if(IPO_IS_SUPPORTED) + message(STATUS "Enabling LTCG/IPO.") + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) + else() + message(WARNING "LTCG/IPO is not supported, this will make the build slightly slower.") + endif() + endif() endif() endif()