From ff05fee2bf1680395142580fed73dd5fed10d11c Mon Sep 17 00:00:00 2001 From: Tim Angus Date: Mon, 24 Nov 2025 12:06:29 +0000 Subject: [PATCH] Enable LTO if available --- CMakeLists.txt | 6 ++++++ cmake/platforms/emscripten.cmake | 3 +++ 2 files changed, 9 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c7336b3..c527b9f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,12 @@ include(identity) project(${PROJECT_NAME} VERSION ${PROJECT_VERSION} LANGUAGES C) +include(CheckIPOSupported) +check_ipo_supported(RESULT IPO_SUPPORTED) +if(IPO_SUPPORTED) + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) +endif() + option(BUILD_SERVER "Build dedicated server" ON) option(BUILD_CLIENT "Build client" ON) option(BUILD_RENDERER_GL1 "Build GL1 renderer" ON) diff --git a/cmake/platforms/emscripten.cmake b/cmake/platforms/emscripten.cmake index 30fd9105..6948845c 100644 --- a/cmake/platforms/emscripten.cmake +++ b/cmake/platforms/emscripten.cmake @@ -15,6 +15,9 @@ set(USE_OPENAL_DLOPEN OFF CACHE INTERNAL "") set(BUILD_GAME_LIBRARIES OFF CACHE INTERNAL "") set(USE_HTTP OFF CACHE INTERNAL "") +# Disable LTO since the libraries Emscripten provides aren't LTO enabled +set(CMAKE_INTERPROCEDURAL_OPTIMIZATION FALSE) + list(APPEND CLIENT_LINK_OPTIONS -sTOTAL_MEMORY=256MB -sSTACK_SIZE=5MB