Skip to content

Commit

Permalink
merge conflict
Browse files Browse the repository at this point in the history
  • Loading branch information
dromer committed Jan 6, 2024
2 parents 1cd702b + 6505aca commit 019f644
Show file tree
Hide file tree
Showing 60 changed files with 715 additions and 616 deletions.
127 changes: 54 additions & 73 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,34 @@ name: build
on: [push, pull_request]

env:
CACHE_VERSION: 4
CACHE_VERSION: 7
CARDINAL_UNDER_WINE: 1
CIBUILD: true
EMSCRIPTEN_VERSION: 3.1.27
DEBIAN_FRONTEND: noninteractive
LIBGL_ALWAYS_SOFTWARE: true
PAWPAW_SKIP_LTO: 1
PAWPAW_SKIP_GLIB: 1
PAWPAW_SKIP_LTO: 1
PAWPAW_SKIP_LV2: 1
PAWPAW_SKIP_OPENSSL: 1
PAWPAW_SKIP_SAMPLERATE: 1
PAWPAW_SKIP_TESTS: 1

jobs:
linux:
strategy:
matrix:
target: [aarch64, armhf, i386, riscv64, x86_64]
runs-on: ubuntu-20.04
target: [aarch64, armhf, i686, riscv64, x86_64]
runs-on: ubuntu-latest
container:
image: ubuntu:20.04
steps:
- name: Install git
run: |
apt-get update -qq && apt-get install -yqq --no-install-recommends ca-certificates curl git openssl
curl -sLO https://launchpad.net/~kxstudio-debian/+archive/ubuntu/toolchain/+files/git_2.34.1-1ubuntu1~bpo20.04.1~ppa1_amd64.deb
curl -sLO https://launchpad.net/~kxstudio-debian/+archive/ubuntu/toolchain/+files/git-man_2.34.1-1ubuntu1~bpo20.04.1~ppa1_all.deb
dpkg -i *.deb
rm *.deb
- uses: actions/checkout@v3
with:
submodules: recursive
Expand All @@ -38,83 +49,55 @@ jobs:
src/Rack/dep/libsamplerate-0.1.9
src/Rack/dep/zstd-1.4.5
key: linux-${{ matrix.target }}-v${{ env.CACHE_VERSION }}
- name: Fix GitHub's mess
- name: Setup dependencies
shell: bash
run: |
sudo rm /etc/apt/sources.list.d/*.list
sudo apt-get update -qq
sudo apt-get purge -yqq git-man libclang* libgbm* libllvm* libmono* libnginx* moby* mono* nginx* perl php* libgdiplus libpcre2-posix3 libselinux1-dev libzip4
sudo apt-get install -yqq --allow-downgrades autoconf/focal automake/focal build-essential/focal git/focal libgd3/focal libglib2.0-0/focal libglib2.0-dev/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal pkg-config/focal
sudo apt-get clean
./deps/PawPaw/.github/workflows/bootstrap-deps.sh linux-${{ matrix.target }}
apt-get install -yqq wget zip
- name: Setup dependencies (aarch64)
if: ${{ matrix.target == 'aarch64' }}
shell: bash
run: |
sudo dpkg --add-architecture arm64
sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-arm64.list
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
sudo apt-get update -qq
sudo apt-get install -yqq g++-aarch64-linux-gnu libasound2-dev:arm64 libdbus-1-dev:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 libsdl2-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 gperf meson qemu-user-static
sudo apt-get clean
apt-get install -yqq libsdl2-dev:arm64
apt-get clean
- name: Setup dependencies (armhf)
if: ${{ matrix.target == 'armhf' }}
shell: bash
run: |
sudo dpkg --add-architecture armhf
sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-armhf.list
echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
sudo apt-get update -qq
sudo apt-get install -yqq g++-arm-linux-gnueabihf libasound2-dev:armhf libdbus-1-dev:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf libsdl2-dev:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf gperf meson qemu-user-static
sudo apt-get clean
- name: Setup dependencies (i386)
if: ${{ matrix.target == 'i386' }}
apt-get install -yqq libsdl2-dev:armhf
apt-get clean
- name: Setup dependencies (i686)
if: ${{ matrix.target == 'i686' }}
shell: bash
run: |
sudo dpkg --add-architecture i386
sudo apt-get update -qq
sudo apt-get install -yqq g++-i686-linux-gnu libasound2-dev:i386 libdbus-1-dev:i386 libgl1-mesa-dev:i386 libglib2.0-dev:i386 libsdl2-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 gperf meson
sudo apt-get clean
apt-get install -yqq libsdl2-dev:i386
apt-get clean
- name: Setup dependencies (riscv64)
if: ${{ matrix.target == 'riscv64' }}
shell: bash
run: |
sudo dpkg --add-architecture riscv64
sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports focal main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-riscv64.list
echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list
echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list
sudo apt-get update -qq
sudo apt-get install -yqq g++-riscv64-linux-gnu libasound2-dev:riscv64 libdbus-1-dev:riscv64 libgl1-mesa-dev:riscv64 libglapi-mesa:riscv64 libglvnd0:riscv64 libglib2.0-dev:riscv64 libsdl2-dev:riscv64 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64 gperf meson qemu-user-static
sudo apt-get clean
apt-get install -yqq libsdl2-dev:riscv64
apt-get clean
- name: Setup dependencies (x86_64)
if: ${{ matrix.target == 'x86_64' }}
shell: bash
run: |
sudo apt-get update -qq
sudo apt-get install -yqq libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libsdl2-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev gperf meson
sudo apt-get clean
apt-get install -yqq libsdl2-dev
apt-get clean
- name: Set up ccache
uses: hendrikmuhs/[email protected]
with:
key: ccache-linux-${{ matrix.target }}-v${{ env.CACHE_VERSION }}
- name: Build extra dependencies
env:
PKG_CONFIG_PATH: /usr/lib/${{ matrix.target }}-linux-gnu/pkgconfig
run: |
./deps/PawPaw/bootstrap-cardinal.sh linux-${{ matrix.target }} && ./deps/PawPaw/.cleanup.sh linux-${{ matrix.target }}
- name: Build linux
shell: bash
run: |
export PATH="/usr/lib/ccache:${PATH}"
source deps/PawPaw/local.env linux-${{ matrix.target }}
export PKG_CONFIG_PATH+=:/usr/lib/${{ matrix.target }}-linux-gnu/pkgconfig
make features
make HAVE_PULSEAUDIO=false NOOPT=true -j $(nproc)
make HAVE_PULSEAUDIO=false NOOPT=true USING_GLES2=${{ matrix.target == 'aarch64' || matrix.target == 'armhf' }} -j $(nproc)
make unzipfx
- name: Set sha8 (non-release)
if: startsWith(github.ref, 'refs/tags/') != true
Expand Down Expand Up @@ -198,7 +181,7 @@ jobs:
key: macos-${{ matrix.target }}-v${{ env.CACHE_VERSION }}
- name: Setup dependencies
run: |
brew install autoconf automake meson
./deps/PawPaw/.github/workflows/bootstrap-deps.sh macos-${{ matrix.target }}
- name: Build extra dependencies
run: |
export PATH="/usr/local/opt/ccache/libexec:${PATH}"
Expand All @@ -210,13 +193,15 @@ jobs:
key: ccache-macos-${{ matrix.target }}-v${{ env.CACHE_VERSION }}
- name: Build macOS (base)
if: steps.cache.outputs.cache-hit == 'true'
shell: bash
run: |
export PATH="/usr/local/opt/ccache/libexec:${PATH}"
source deps/PawPaw/local.env macos-${{ matrix.target }}
make features
make NOOPT=true -j $(sysctl -n hw.logicalcpu)
- name: Build macOS (AU using juce)
if: steps.cache.outputs.cache-hit == 'true'
shell: bash
run: |
export PATH="/usr/local/opt/ccache/libexec:${PATH}"
source deps/PawPaw/local.env macos-${{ matrix.target }}
Expand All @@ -225,6 +210,7 @@ jobs:
mv jucewrapper/build/*_artefacts/Release/AU/*.component bin/
- name: Build macOS (packaging)
if: steps.cache.outputs.cache-hit == 'true'
shell: bash
run: |
source deps/PawPaw/local.env macos-${{ matrix.target }}
./utils/create-macos-installer.sh
Expand Down Expand Up @@ -335,32 +321,30 @@ jobs:
sudo apt-get update -qq
sudo apt-get install -yqq brotli gperf meson
sudo apt-get clean
[ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk
cd ~/PawPawBuilds/emsdk && ./emsdk install ${{ env.EMSCRIPTEN_VERSION }} && ./emsdk activate ${{ env.EMSCRIPTEN_VERSION }}
- name: Build extra dependencies
run: |
${{ matrix.target == 'nosimd' }} && export PAWPAW_NOSIMD=1
source ~/PawPawBuilds/emsdk/emsdk_env.sh
./deps/PawPaw/bootstrap-cardinal.sh wasm && ./deps/PawPaw/.cleanup.sh wasm
- name: Build wasm cross-compiled
if: steps.cache.outputs.cache-hit == 'true'
shell: bash
run: |
${{ matrix.target == 'nosimd' }} && export PAWPAW_NOSIMD=1
source ~/PawPawBuilds/emsdk/emsdk_env.sh
source deps/PawPaw/local.env wasm
# FIXME send patch upstream, assuming this works..
sed -i -e 's/defined(__riscv)/defined(__riscv) || defined(__EMSCRIPTEN__)/' plugins/surgext/surge/src/common/globals.h
make features
make HAVE_LIBLO=false NOOPT=true NOSIMD=${{ matrix.target == 'nosimd' }} -j $(nproc)
- name: Build modgui
if: steps.cache.outputs.cache-hit == 'true'
shell: bash
run: |
${{ matrix.target == 'nosimd' }} && export PAWPAW_NOSIMD=1
source ~/PawPawBuilds/emsdk/emsdk_env.sh
source deps/PawPaw/local.env wasm
make HAVE_LIBLO=false NOOPT=true NOSIMD=${{ matrix.target == 'nosimd' }} -j $(nproc) -C src/CardinalMiniSep modgui
- name: Make wasm versioned and compress
if: steps.cache.outputs.cache-hit == 'true'
shell: bash
run: |
${{ matrix.target == 'nosimd' }} && export SUFFIX="-nosimd"
VERSION=$(cat Makefile | awk 'sub("VERSION = ","")')
Expand Down Expand Up @@ -405,8 +389,13 @@ jobs:
strategy:
matrix:
target: [win32, win64]
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
container:
image: ubuntu:22.04
steps:
- name: Install git
run: |
apt-get update -qq && apt-get install -yqq --no-install-recommends ca-certificates git openssl
- uses: actions/checkout@v3
with:
submodules: recursive
Expand All @@ -425,23 +414,11 @@ jobs:
src/Rack/dep/libsamplerate-0.1.9
src/Rack/dep/zstd-1.4.5
key: ${{ matrix.target }}-v${{ env.CACHE_VERSION }}
- name: Fix GitHub's mess
run: |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo dpkg --add-architecture i386
sudo apt-get update -qq
sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386
sudo apt-get clean
- name: Set up dependencies
if: ${{ matrix.target == 'win32' }}
run: |
sudo apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable:i386 gperf meson qttools5-dev qttools5-dev-tools xvfb
sudo apt-get clean
- name: Set up dependencies
if: ${{ matrix.target == 'win64' }}
run: |
sudo apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 wine-stable gperf meson qttools5-dev qttools5-dev-tools xvfb
sudo apt-get clean
./deps/PawPaw/.github/workflows/bootstrap-deps.sh ${{ matrix.target }}
apt-get install -yqq wget xvfb zip
apt-get clean
- name: Set up ccache
uses: hendrikmuhs/[email protected]
with:
Expand All @@ -451,13 +428,15 @@ jobs:
./deps/PawPaw/bootstrap-cardinal.sh ${{ matrix.target }} && ./deps/PawPaw/.cleanup.sh ${{ matrix.target }}
- name: Build cross-compiled (base)
if: steps.cache.outputs.cache-hit == 'true'
shell: bash
run: |
export PATH="/usr/lib/ccache:${PATH}"
source deps/PawPaw/local.env ${{ matrix.target }}
make features
make NOOPT=true -j $(nproc)
- name: Build cross-compiled (carla)
if: steps.cache.outputs.cache-hit == 'true'
shell: bash
run: |
export PATH="/usr/lib/ccache:${PATH}"
source deps/PawPaw/local.env ${{ matrix.target }}
Expand All @@ -466,6 +445,7 @@ jobs:
make -C carla EMBED_TARGET=true TESTING=true dist
- name: Build cross-compiled (packaging)
if: steps.cache.outputs.cache-hit == 'true'
shell: bash
run: |
source deps/PawPaw/local.env ${{ matrix.target }}
xvfb-run ./utils/create-windows-installer.sh ${{ matrix.target }}
Expand All @@ -478,6 +458,7 @@ jobs:
run: echo "SHA8=$(echo ${{ github.ref_name }})" >> $GITHUB_ENV
- name: Pack binaries
if: steps.cache.outputs.cache-hit == 'true'
shell: bash
run: |
pushd bin
zip -r -9 ../${{ github.event.repository.name }}-${{ matrix.target }}-${{ github.event.pull_request.number || env.SHA8 }}.zip $(ls | grep -e lv2 -e vst -e clap)
Expand Down
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -212,9 +212,6 @@
[submodule "plugins/dBiz"]
path = plugins/dBiz
url = https://github.com/dBiz/dBiz.git
[submodule "include/simde"]
path = include/simde
url = https://github.com/simd-everywhere/simde.git
[submodule "plugins/RebelTech"]
path = plugins/RebelTech
url = https://github.com/hemmer/rebel-tech-vcv.git
Expand All @@ -233,6 +230,9 @@
[submodule "plugins/EnigmaCurry"]
path = plugins/EnigmaCurry
url = https://github.com/EnigmaCurry/EnigmaCurry-vcv-pack.git
[submodule "plugins/DHE-Modules"]
path = plugins/DHE-Modules
url = https://github.com/dhemery/DHE-Modules.git
[submodule "plugins/StarlingVia"]
path = plugins/StarlingVia
url = https://github.com/starlingcode/Via-for-Rack.git
12 changes: 4 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
#!/usr/bin/make -f
# Makefile for DISTRHO Plugins #
# ---------------------------- #
# Created by falkTX
#
# DISTRHO Cardinal Plugin
# Copyright (C) 2021-2024 Filipe Coelho <[email protected]>
# SPDX-License-Identifier: GPL-3.0-or-later

ROOT = .
include $(ROOT)/Makefile.base.mk
Expand All @@ -16,7 +15,7 @@ include $(ROOT)/Makefile.base.mk
# src/CardinalPlugin.cpp `getVersion`
# utils/macOS/Info_{JACK,Native}.plist
# jucewrapper/CMakeLists.txt src/CardinalCommon.cpp src/CardinalPlugin.cpp utils/macOS/Info_{JACK,Native}.plist
VERSION = 23.10
VERSION = 24.01

# --------------------------------------------------------------
# Build targets
Expand Down Expand Up @@ -268,9 +267,6 @@ clean:
$(MAKE) clean -C plugins
$(MAKE) clean -C src
rm -rf bin build build-headless dpf/utils/lv2_ttl_generator.d
# FIXME
rm -f src/Rack/BaconMusic/default-skin.json
rm -f src/Rack/SurgeXTRack/default-skin.json

# --------------------------------------------------------------
# Install step
Expand Down
33 changes: 9 additions & 24 deletions Makefile.base.mk
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,12 @@ endif

ifeq ($(NOSIMD),true)
BASE_FLAGS += -DCARDINAL_NOSIMD
else ifeq ($(WASM),true)
BASE_FLAGS += -msse -msse2 -msse3 -msimd128
else ifeq ($(CPU_ARM32),true)
BASE_FLAGS += -mfpu=neon-vfpv4 -mfloat-abi=hard
else ifeq ($(CPU_I386_OR_X86_64),true)
BASE_FLAGS += -msse -msse2 -msse3
endif

ifeq ($(SYSDEPS),true)
Expand Down Expand Up @@ -109,10 +115,6 @@ BASE_FLAGS += -DSIMDE_FAST_NANS
BASE_FLAGS += -DSIMDE_FAST_ROUND_MODE
BASE_FLAGS += -DSIMDE_FAST_ROUND_TIES

# unwanted
BASE_FLAGS += -DSIMDE_X86_SSE4_1_H
BASE_FLAGS += -DSIMDE_X86_SSE4_2_H

# -----------------------------------------------------------------------------
# Rack build flags

Expand Down Expand Up @@ -153,33 +155,16 @@ ifeq ($(HEADLESS),true)
BASE_FLAGS += -DHEADLESS
endif

ifeq ($(USE_GLES2),true)
BASE_FLAGS += -DNANOVG_GLES2_FORCED
else ifeq ($(USE_GLES3),true)
ifeq ($(USE_GLES3),true)
BASE_FLAGS += -DNANOVG_GLES3_FORCED
else ifeq ($(USE_GLES2),true)
BASE_FLAGS += -DNANOVG_GLES2_FORCED
endif

# needed for enabling SSE in pffft
ifeq ($(CPU_I386),true)
ifneq ($(NOSIMD),true)
BASE_FLAGS += -Di386
endif
endif

# SIMD must always be enabled, even in debug builds
ifneq ($(NOSIMD),true)
ifeq ($(DEBUG),true)

ifeq ($(WASM),true)
BASE_FLAGS += -msse -msse2 -msse3 -msimd128
else ifeq ($(CPU_ARM32),true)
BASE_FLAGS += -mfpu=neon-vfpv4 -mfloat-abi=hard
else ifeq ($(CPU_I386_OR_X86_64),true)
BASE_FLAGS += -msse -msse2 -mfpmath=sse
endif

endif
endif

BASE_FLAGS += -I$(abspath $(ROOT)/dpf/dgl/src/nanovg)
BASE_FLAGS += -I$(abspath $(ROOT)/dpf/distrho)
Expand Down
Loading

0 comments on commit 019f644

Please sign in to comment.