cmake: remove USE_LTO option and disable USE_IPO for 3rdParty projects

This commit is contained in:
Rosalie Wanders
2025-12-04 16:27:35 +01:00
parent 03403653b2
commit e80898ed2d
2 changed files with 11 additions and 23 deletions
-13
View File
@@ -10,7 +10,6 @@ option(KCA_DRAG_DROP "Enables drag and drop using KCoreAddons" OFF) # https:/
option(NETPLAY "Enables netplay" ON) option(NETPLAY "Enables netplay" ON)
option(VRU "Enables VRU support in RMG-Input" ON) option(VRU "Enables VRU support in RMG-Input" ON)
option(USE_CCACHE "Enables usage of ccache when ccache has been found" ON) option(USE_CCACHE "Enables usage of ccache when ccache has been found" ON)
option(USE_LTO "Enables building with LTO/IPO when compiler supports it" ON)
option(NO_ASM "Disables the usage of assembly in the mupen64plus-core" OFF) option(NO_ASM "Disables the usage of assembly in the mupen64plus-core" OFF)
option(USE_ANGRYLION "Enables building angrylion-rdp-plus which uses a non-GPL compliant license" OFF) option(USE_ANGRYLION "Enables building angrylion-rdp-plus which uses a non-GPL compliant license" OFF)
@@ -43,18 +42,6 @@ if (USE_CCACHE)
endif(CCACHE_FOUND) endif(CCACHE_FOUND)
endif(USE_CCACHE) endif(USE_CCACHE)
if (USE_LTO)
include(CheckIPOSupported)
check_ipo_supported(RESULT ENABLE_IPO)
# ensure we don't enable LTO on Debug builds
if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
if(ENABLE_IPO)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
endif(ENABLE_IPO)
endif()
endif(USE_LTO)
if (NOT PORTABLE_INSTALL AND WIN32) if (NOT PORTABLE_INSTALL AND WIN32)
message(WARNING "Not-Portable build not supported on windows, re-enabling PORTABLE_INSTALL!") message(WARNING "Not-Portable build not supported on windows, re-enabling PORTABLE_INSTALL!")
set(PORTABLE_INSTALL ON) set(PORTABLE_INSTALL ON)
+10 -9
View File
@@ -38,11 +38,7 @@ else()
endif() endif()
if ("${CMAKE_C_FLAGS}" STREQUAL "") if ("${CMAKE_C_FLAGS}" STREQUAL "")
if (USE_LTO)
set(MAKE_OPTFLAGS "-O3 -flto")
else(USE_LTO)
set(MAKE_OPTFLAGS "-O3") set(MAKE_OPTFLAGS "-O3")
endif(USE_LTO)
else() else()
set(MAKE_OPTFLAGS "${CMAKE_C_FLAGS}") set(MAKE_OPTFLAGS "${CMAKE_C_FLAGS}")
endif() endif()
@@ -62,10 +58,15 @@ set(SDL3NET_DIR ${CMAKE_CURRENT_SOURCE_DIR}/SDL_net)
set(SDL3NET_SOURCES set(SDL3NET_SOURCES
${SDL3NET_DIR}/src/SDL_net.c ${SDL3NET_DIR}/src/SDL_net.c
) )
find_package(PkgConfig REQUIRED)
pkg_check_modules(SDL3 REQUIRED sdl3)
add_library(SDL3_net STATIC ${SDL3NET_SOURCES}) add_library(SDL3_net STATIC ${SDL3NET_SOURCES})
target_include_directories(SDL3_net PRIVATE ${SDL3NET_DIR}/include) target_include_directories(SDL3_net PRIVATE ${SDL3NET_DIR}/include)
set(SDL3NET_CFLAGS "-DUSE_SDL3NET -I${SDL3NET_DIR}/include") set(SDL3NET_CFLAGS "-DUSE_SDL3NET -I${SDL3NET_DIR}/include")
set(SDL3NET_LDLIBS "$<TARGET_FILE:SDL3_net>") # for some reason MingW needs SDL3 to be linked after SDL3_net,
# else we get a lot of missing symbol errors, should be harmless
# on other platforms
set(SDL3NET_LDLIBS "$<TARGET_FILE:SDL3_net> -l${SDL3_LIBRARIES}")
if (WIN32) if (WIN32)
set(SDL3NET_LDLIBS "${SDL3NET_LDLIBS} -liphlpapi -lws2_32") set(SDL3NET_LDLIBS "${SDL3NET_LDLIBS} -liphlpapi -lws2_32")
endif (WIN32) endif (WIN32)
@@ -140,7 +141,7 @@ ExternalProject_Add(mupen64plus-rsp-parallel
BUILD_IN_SOURCE False BUILD_IN_SOURCE False
BUILD_ALWAYS True BUILD_ALWAYS True
CMAKE_ARGS ${CMAKE_CONFIGURE_ARGS} CMAKE_ARGS -DUSE_IPO=OFF ${CMAKE_CONFIGURE_ARGS}
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/mupen64plus-rsp-parallel BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/mupen64plus-rsp-parallel
BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/mupen64plus-rsp-parallel/mupen64plus-rsp-parallel.${SO_EXT} BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/mupen64plus-rsp-parallel/mupen64plus-rsp-parallel.${SO_EXT}
@@ -184,7 +185,7 @@ if (USE_ANGRYLION)
BUILD_IN_SOURCE False BUILD_IN_SOURCE False
BUILD_ALWAYS True BUILD_ALWAYS True
CMAKE_ARGS -DBUILD_MUPEN64PLUS=ON -DBUILD_PROJECT64=OFF -DUSE_QT5=OFF ${CMAKE_CONFIGURE_ARGS} CMAKE_ARGS -DBUILD_MUPEN64PLUS=ON -DBUILD_PROJECT64=OFF -DUSE_QT5=OFF -DUSE_IPO=OFF ${CMAKE_CONFIGURE_ARGS}
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/mupen64plus-video-angrylion-plus BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/mupen64plus-video-angrylion-plus
BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/mupen64plus-video-angrylion-plus/mupen64plus-video-angrylion-plus.${SO_EXT} BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/mupen64plus-video-angrylion-plus/mupen64plus-video-angrylion-plus.${SO_EXT}
@@ -198,7 +199,7 @@ ExternalProject_Add(mupen64plus-video-GLideN64
BUILD_IN_SOURCE False BUILD_IN_SOURCE False
BUILD_ALWAYS True BUILD_ALWAYS True
CMAKE_ARGS -DMUPENPLUSAPI=ON -DMUPENPLUSAPI_GLIDENUI=ON -DGLIDENUI_QT6=ON -DUSE_SYSTEM_LIBS=ON ${CMAKE_CONFIGURE_ARGS} CMAKE_ARGS -DMUPENPLUSAPI=ON -DMUPENPLUSAPI_GLIDENUI=ON -DGLIDENUI_QT6=ON -DUSE_IPO=OFF -DUSE_SYSTEM_LIBS=ON ${CMAKE_CONFIGURE_ARGS}
SOURCE_SUBDIR ./src/ SOURCE_SUBDIR ./src/
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/mupen64plus-video-GLideN64 BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/mupen64plus-video-GLideN64
@@ -213,7 +214,7 @@ ExternalProject_Add(mupen64plus-video-parallel
BUILD_IN_SOURCE False BUILD_IN_SOURCE False
BUILD_ALWAYS True BUILD_ALWAYS True
CMAKE_ARGS -DCONFIG_GUI=ON ${CMAKE_CONFIGURE_ARGS} CMAKE_ARGS -DCONFIG_GUI=ON -DUSE_IPO=OFF ${CMAKE_CONFIGURE_ARGS}
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/mupen64plus-video-parallel BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/mupen64plus-video-parallel
BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/mupen64plus-video-parallel/mupen64plus-video-parallel.${SO_EXT} BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/mupen64plus-video-parallel/mupen64plus-video-parallel.${SO_EXT}