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()