diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ee3d6b4d..a9f42456 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,11 +4,12 @@ on: push: env: - CACHE_VERSION: 26 + CACHE_VERSION: 27 CARDINAL_UNDER_WINE: 1 DEBIAN_FRONTEND: noninteractive HOMEBREW_NO_AUTO_UPDATE: 1 LIBGL_ALWAYS_SOFTWARE: 'true' + WITH_LTO: 'false' jobs: linux-arm64: @@ -43,7 +44,7 @@ jobs: src/Rack/dep/libsamplerate-0.1.9 src/Rack/dep/speexdsp-SpeexDSP-1.2rc3 src/Rack/dep/zstd-1.4.5 - key: linux-arm64-v${{ env.CACHE_VERSION }} + key: linux-arm64-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }} - name: Fix GitHub's mess run: | sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list @@ -62,12 +63,13 @@ jobs: env: PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig run: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi ./deps/PawPaw/bootstrap-cardinal.sh linux-aarch64 && ./deps/PawPaw/.cleanup.sh linux-aarch64 - name: Build linux arm64 cross-compiled run: | pushd deps/PawPaw; source local.env linux-aarch64; popd make features - make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc) + make CIBUILD=true NOOPT=true WITH_LTO=${{ env.WITH_LTO }} -j $(nproc) make unzipfx - name: Set sha8 (non-release) if: startsWith(github.ref, 'refs/tags/') != true @@ -130,7 +132,7 @@ jobs: src/Rack/dep/libsamplerate-0.1.9 src/Rack/dep/speexdsp-SpeexDSP-1.2rc3 src/Rack/dep/zstd-1.4.5 - key: linux-armhf-v${{ env.CACHE_VERSION }} + key: linux-armhf-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }} - name: Fix GitHub's mess run: | sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list @@ -149,12 +151,13 @@ jobs: env: PKG_CONFIG_PATH: /usr/lib/arm-linux-gnueabihf/pkgconfig run: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi ./deps/PawPaw/bootstrap-cardinal.sh linux-armhf && ./deps/PawPaw/.cleanup.sh linux-armhf - name: Build linux armhf cross-compiled run: | pushd deps/PawPaw; source local.env linux-armhf; popd make features - make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc) + make CIBUILD=true NOOPT=true WITH_LTO=${{ env.WITH_LTO }} -j $(nproc) make unzipfx - name: Set sha8 (non-release) if: startsWith(github.ref, 'refs/tags/') != true @@ -217,7 +220,7 @@ jobs: src/Rack/dep/libsamplerate-0.1.9 src/Rack/dep/speexdsp-SpeexDSP-1.2rc3 src/Rack/dep/zstd-1.4.5 - key: linux-i686-v${{ env.CACHE_VERSION }} + key: linux-i686-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }} - name: Fix GitHub's mess run: | sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list @@ -232,12 +235,13 @@ jobs: env: PKG_CONFIG_PATH: /usr/lib/i386-linux-gnu/pkgconfig run: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi ./deps/PawPaw/bootstrap-cardinal.sh linux-i686 && ./deps/PawPaw/.cleanup.sh linux-i686 - name: Build linux i686 run: | pushd deps/PawPaw; source local.env linux-i686; popd make features - make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc) + make CIBUILD=true NOOPT=true WITH_LTO=${{ env.WITH_LTO }} -j $(nproc) make unzipfx - name: Set sha8 (non-release) if: startsWith(github.ref, 'refs/tags/') != true @@ -300,19 +304,20 @@ jobs: src/Rack/dep/libsamplerate-0.1.9 src/Rack/dep/speexdsp-SpeexDSP-1.2rc3 src/Rack/dep/zstd-1.4.5 - key: linux-x86_64-v${{ env.CACHE_VERSION }} + key: linux-x86_64-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }} - name: Set up dependencies run: | sudo apt-get update -qq sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev - name: Build extra dependencies run: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi ./deps/PawPaw/bootstrap-cardinal.sh linux && ./deps/PawPaw/.cleanup.sh linux - name: Build linux x86_64 run: | pushd deps/PawPaw; source local.env linux; popd make features - make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc) + make CIBUILD=true NOOPT=true WITH_LTO=${{ env.WITH_LTO }} -j $(nproc) make unzipfx - name: Set sha8 (non-release) if: startsWith(github.ref, 'refs/tags/') != true @@ -434,15 +439,16 @@ jobs: src/Rack/dep/libsamplerate-0.1.9 src/Rack/dep/speexdsp-SpeexDSP-1.2rc3 src/Rack/dep/zstd-1.4.5 - key: macos-intel-v${{ env.CACHE_VERSION }} + key: macos-intel-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }} - name: Build extra dependencies run: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi ./deps/PawPaw/bootstrap-cardinal.sh macos && ./deps/PawPaw/.cleanup.sh macos - name: Build macOS intel (base) run: | pushd deps/PawPaw; source local.env macos; popd make features - make CIBUILD=true NOOPT=true WITH_LTO=true -j $(sysctl -n hw.logicalcpu) + make CIBUILD=true NOOPT=true WITH_LTO=${{ env.WITH_LTO }} -j $(sysctl -n hw.logicalcpu) - name: Build macOS intel (AU using juce) env: MACOSX_DEPLOYMENT_TARGET: '10.8' @@ -520,15 +526,16 @@ jobs: src/Rack/dep/libsamplerate-0.1.9 src/Rack/dep/speexdsp-SpeexDSP-1.2rc3 src/Rack/dep/zstd-1.4.5 - key: macos-universal-v${{ env.CACHE_VERSION }} + key: macos-universal-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }} - name: Build extra dependencies run: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi ./deps/PawPaw/bootstrap-cardinal.sh macos-universal && ./deps/PawPaw/.cleanup.sh macos-universal - name: Build macOS universal (base) run: | pushd deps/PawPaw; source local.env macos-universal; popd make features - make CIBUILD=true NOOPT=true WITH_LTO=true -j $(sysctl -n hw.logicalcpu) + make CIBUILD=true NOOPT=true WITH_LTO=${{ env.WITH_LTO }} -j $(sysctl -n hw.logicalcpu) - name: Build macOS universal (AU using juce) env: MACOSX_DEPLOYMENT_TARGET: '10.12' @@ -585,7 +592,7 @@ jobs: with: path: | ~/mod-workdir - key: modduo-static-v${{ env.CACHE_VERSION }} + key: modduo-static-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }} - name: Set up dependencies run: | sudo apt-get update -qq @@ -599,7 +606,7 @@ jobs: $(pwd)/deps/mod-plugin-builder/bootstrap.sh modduo-static minimal && $(pwd)/deps/mod-plugin-builder/.clean-install.sh modduo-static - name: Build for modduo run: | - make modduo HEADLESS=true WITH_LTO=true MODDUO=true -j $(nproc) + make modduo HEADLESS=true WITH_LTO=${{ env.WITH_LTO }} MODDUO=true -j $(nproc) - name: Set sha8 id: slug run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)" @@ -624,7 +631,7 @@ jobs: with: path: | ~/mod-workdir - key: modduox-v${{ env.CACHE_VERSION }} + key: modduox-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }} - name: Set up dependencies run: | sudo apt-get update -qq @@ -638,7 +645,7 @@ jobs: $(pwd)/deps/mod-plugin-builder/bootstrap.sh modduox-static minimal && $(pwd)/deps/mod-plugin-builder/.clean-install.sh modduox-static - name: Build for modduox run: | - make modduox HEADLESS=true WITH_LTO=true -j $(nproc) + make modduox HEADLESS=true WITH_LTO=${{ env.WITH_LTO }} -j $(nproc) - name: Set sha8 id: slug run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)" @@ -663,7 +670,7 @@ jobs: with: path: | ~/mod-workdir - key: moddwarf-v${{ env.CACHE_VERSION }} + key: moddwarf-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }} - name: Set up dependencies run: | sudo apt-get update -qq @@ -677,7 +684,7 @@ jobs: $(pwd)/deps/mod-plugin-builder/bootstrap.sh moddwarf minimal && $(pwd)/deps/mod-plugin-builder/.clean-install.sh moddwarf - name: Build for moddwarf run: | - make moddwarf HEADLESS=true WITH_LTO=true -j $(nproc) + make moddwarf HEADLESS=true WITH_LTO=${{ env.WITH_LTO }} -j $(nproc) - name: Set sha8 id: slug run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)" @@ -865,7 +872,7 @@ jobs: src/Rack/dep/libsamplerate-0.1.9 src/Rack/dep/speexdsp-SpeexDSP-1.2rc3 src/Rack/dep/zstd-1.4.5 - key: win32-v${{ env.CACHE_VERSION }} + key: win32-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }} - name: Fix GitHub's mess run: | sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list @@ -879,12 +886,13 @@ jobs: sudo apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable:i386 qttools5-dev qttools5-dev-tools xvfb - name: Build extra dependencies run: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi ./deps/PawPaw/bootstrap-cardinal.sh win32 && ./deps/PawPaw/.cleanup.sh win32 - name: Build win32 cross-compiled (base) run: | pushd deps/PawPaw; source local.env win32; popd make features - make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc) + make CIBUILD=true NOOPT=true WITH_LTO=${{ env.WITH_LTO }} -j $(nproc) - name: Build win64 cross-compiled (carla) run: | pushd deps/PawPaw; source local.env win32; popd @@ -958,7 +966,7 @@ jobs: src/Rack/dep/libsamplerate-0.1.9 src/Rack/dep/speexdsp-SpeexDSP-1.2rc3 src/Rack/dep/zstd-1.4.5 - key: win64-v${{ env.CACHE_VERSION }} + key: win64-v${{ env.CACHE_VERSION }}-${{ env.WITH_LTO }} - name: Fix GitHub's mess run: | sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list @@ -972,12 +980,13 @@ jobs: sudo apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 wine-stable qttools5-dev qttools5-dev-tools xvfb - name: Build extra dependencies run: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi ./deps/PawPaw/bootstrap-cardinal.sh win64 && ./deps/PawPaw/.cleanup.sh win64 - name: Build win64 cross-compiled (base) run: | pushd deps/PawPaw; source local.env win64; popd make features - make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc) + make CIBUILD=true NOOPT=true WITH_LTO=${{ env.WITH_LTO }} -j $(nproc) - name: Build win64 cross-compiled (carla) run: | pushd deps/PawPaw; source local.env win64; popd diff --git a/utils/inno/win32.iss b/utils/inno/win32.iss index 863ab3d9..cff7ed9a 100644 --- a/utils/inno/win32.iss +++ b/utils/inno/win32.iss @@ -16,7 +16,7 @@ OutputDir=. UsePreviousAppDir=no [Types] -Name: "full"; Description: "Full installation"; +Name: "normal"; Description: "Full installation"; Name: "custom"; Description: "Custom installation"; Flags: iscustom; [Components] diff --git a/utils/inno/win64.iss b/utils/inno/win64.iss index ac377727..90cfa810 100644 --- a/utils/inno/win64.iss +++ b/utils/inno/win64.iss @@ -17,7 +17,7 @@ OutputDir=. UsePreviousAppDir=no [Types] -Name: "full"; Description: "Full installation"; +Name: "normal"; Description: "Full installation"; Name: "custom"; Description: "Custom installation"; Flags: iscustom; [Components]