From d0b8974845c1ab54a941b9c1704ee5a734089c5c Mon Sep 17 00:00:00 2001 From: Steveice10 <1269164+Steveice10@users.noreply.github.com> Date: Sat, 23 Sep 2023 15:00:16 -0700 Subject: [PATCH] build: Disable LTO when using MSVC. (#7003) --- .github/workflows/build.yml | 5 ----- CMakeLists.txt | 9 ++++++++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4e27f980ae..ea69b80195 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -145,11 +145,6 @@ jobs: key: ${{ runner.os }}-${{ matrix.target }}-${{ github.sha }} restore-keys: | ${{ runner.os }}-${{ matrix.target }}- - - name: Increase Pagefile size - uses: al-cheb/configure-pagefile-action@v1.2 - with: - minimum-size: 2GB - maximum-size: 6GB - name: Set up MSVC uses: ilammy/msvc-dev-cmd@v1 if: ${{ matrix.target == 'msvc' }} diff --git a/CMakeLists.txt b/CMakeLists.txt index e0cecc6866..7580398c59 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,6 +46,13 @@ else() set(IS_RELEASE_BUILD ON) endif() +# LTO takes too much memory and time using MSVC. +if (NOT MSVC AND IS_RELEASE_BUILD) + set(DEFAULT_ENABLE_LTO ON) +else() + set(DEFAULT_ENABLE_LTO OFF) +endif() + option(ENABLE_SDL2 "Enable using SDL2" ON) CMAKE_DEPENDENT_OPTION(ENABLE_SDL2_FRONTEND "Enable the SDL2 frontend" ON "ENABLE_SDL2;NOT ANDROID AND NOT IOS" OFF) option(USE_SYSTEM_SDL2 "Use the system SDL2 lib (instead of the bundled one)" OFF) @@ -75,7 +82,7 @@ CMAKE_DEPENDENT_OPTION(CITRA_ENABLE_BUNDLE_TARGET "Enable the distribution bundl # Compile options CMAKE_DEPENDENT_OPTION(COMPILE_WITH_DWARF "Add DWARF debugging information" ${IS_DEBUG_BUILD} "MINGW" OFF) -option(ENABLE_LTO "Enable link time optimization" ${IS_RELEASE_BUILD}) +option(ENABLE_LTO "Enable link time optimization" ${DEFAULT_ENABLE_LTO}) option(CITRA_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON) option(CITRA_WARNINGS_AS_ERRORS "Enable warnings as errors" ON)