diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ee3d6b4d..90f8e633 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,14 @@ 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: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi 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 +133,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 +152,14 @@ 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: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi 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 +222,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 +237,14 @@ 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: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi 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 +307,21 @@ 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: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi 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,19 +443,22 @@ 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: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi 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' run: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi pushd deps/PawPaw; source local.env macos; popd git clone --depth=1 -b 6.1.6 https://github.com/juce-framework/JUCE.git jucewrapper/JUCE sed -i -e 's/kAudioUnitProperty_SupportsMPE/kAudioUnitProperty_ignore_SupportsMPE/' jucewrapper/JUCE/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h @@ -520,19 +532,22 @@ 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: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi 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' run: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi pushd deps/PawPaw; source local.env macos-universal; popd git clone --depth=1 -b 6.1.6 https://github.com/juce-framework/JUCE.git jucewrapper/JUCE mkdir -p jucewrapper/build @@ -585,7 +600,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 +614,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 +639,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 +653,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 +678,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 +692,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 +880,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,14 +894,17 @@ 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: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi 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: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi pushd deps/PawPaw; source local.env win32; popd make -C carla CARLA_BACKEND_NAMESPACE=Cardinal EXTERNAL_PLUGINS=true HAVE_FLUIDSYNTH=false HAVE_ZYN_DEPS=false HAVE_ZYN_UI_DEPS=false HAVE_PYQT=true HAVE_QT5=true HAVE_QT5PKG=true STATIC_PLUGIN_TARGET=true USING_CUSTOM_DPF=true CUSTOM_DPF_PATH=$(pwd)/dpf -j $(nproc) make -C carla EMBED_TARGET=true TESTING=true dist @@ -958,7 +976,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,14 +990,17 @@ 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: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi 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: | + if [ "${{ env.WITH_LTO }}" != "true" ]; then export PAWPAW_SKIP_LTO=1; fi pushd deps/PawPaw; source local.env win64; popd make -C carla CARLA_BACKEND_NAMESPACE=Cardinal EXTERNAL_PLUGINS=true HAVE_FLUIDSYNTH=false HAVE_ZYN_DEPS=false HAVE_ZYN_UI_DEPS=false HAVE_PYQT=true HAVE_QT5=true HAVE_QT5PKG=true STATIC_PLUGIN_TARGET=true USING_CUSTOM_DPF=true CUSTOM_DPF_PATH=$(pwd)/dpf all win32r -j $(nproc) make -C carla EMBED_TARGET=true TESTING=true dist diff --git a/deps/Makefile b/deps/Makefile index dc222148..4c9b83fe 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -174,7 +174,7 @@ DEP_MAKE += VERBOSE=1 ifeq ($(shell uname -s),Darwin) ifeq ($(CIBUILD),true) -DEP_MAKE += SHA256SUM="shasum5.28 -a 256" +DEP_MAKE += SHA256SUM="shasum5.30 -a 256" else DEP_MAKE += SHA256SUM="shasum5.30 -a 256" endif 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]