Updated LTO Check to new standard. (#5476)

The due to LTO the Release build didn't link. The official cmake page suggest it to do it like this
https://cmake.org/cmake/help/latest/module/CheckIPOSupported.html
This commit is contained in:
x12xx12x 2023-05-19 16:52:35 +02:00 committed by GitHub
parent d9aed92fb4
commit a4668c000c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -33,13 +33,6 @@ set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# The need for speed (in Release):
if(WHOLE_PROGRAM_OPTIMISATION)
include(CheckIPOSupported)
check_ipo_supported(RESULT IPO_SUPPORTED)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ${IPO_SUPPORTED})
endif()
# Static CRT:
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
@ -99,6 +92,17 @@ if(SELF_TEST)
add_subdirectory(tests)
endif()
# The need for speed (in Release):
if(WHOLE_PROGRAM_OPTIMISATION)
include(CheckIPOSupported)
check_ipo_supported(RESULT IPO_SUPPORTED OUTPUT IPO_CHECK_OUTPUT)
if(IPO_SUPPORTED)
set_property(TARGET ${CMAKE_PROJECT_NAME} PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
else()
message(WARNING "IPO is not supported: ${IPO_CHECK_OUTPUT}")
endif()
endif()
emit_fixups()
group_sources()
enable_bindings_generation()