Initial setup for mod audio builds, WIP #215
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: bootstrap | |
on: | |
push: | |
env: | |
CACHE_VERSION: 2 | |
EMSCRIPTEN_VERSION: 3.1.27 | |
jobs: | |
common: | |
strategy: | |
matrix: | |
include: | |
- name: linux-aarch64 | |
installer: apt | |
os: ubuntu-20.04 | |
target: linux-aarch64 | |
- name: linux-armhf | |
installer: apt | |
os: ubuntu-20.04 | |
target: linux-armhf | |
- name: linux-i686 | |
installer: apt | |
os: ubuntu-20.04 | |
target: linux-i686 | |
- name: linux-riscv64 | |
installer: apt | |
os: ubuntu-20.04 | |
target: linux-riscv64 | |
- name: linux-x86_64 | |
installer: apt | |
os: ubuntu-20.04 | |
target: linux-x86_64 | |
- name: macos | |
installer: homebrew | |
os: macos-11 | |
target: macos | |
- name: macos-universal | |
installer: homebrew | |
os: macos-11 | |
target: macos-universal | |
- name: wasm | |
installer: apt | |
os: ubuntu-22.04 | |
target: wasm | |
- name: win32 | |
installer: apt | |
os: ubuntu-22.04 | |
target: win32 | |
- name: win64 | |
installer: apt | |
os: ubuntu-22.04 | |
target: win64 | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/PawPawBuilds | |
key: common-${{ matrix.target }}-v${{ env.CACHE_VERSION }} | |
- name: (apt) Restore debian package cache | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then | |
sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/ | |
fi | |
- name: (apt) Fix GitHub's mess in ubuntu-20.04 | |
if: ${{ matrix.os == 'ubuntu-20.04' }} | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo add-apt-repository -yn ppa:kxstudio-debian/toolchain | |
sudo apt-get update -qq | |
sudo apt-get install -yqq --allow-downgrades libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal | |
sudo apt-get purge -yqq libclang* libgbm* libllvm* libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4 | |
- name: (apt) Fix GitHub's mess in ubuntu-22.04 | |
if: ${{ matrix.os == 'ubuntu-22.04' }} | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo apt-get update -qq | |
- name: (apt) Set up dependencies (apt) | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
sudo apt-get update -qq | |
sudo apt-get install -yqq autopoint build-essential curl cmake jq meson | |
# extra, for using system libraries | |
if [ '${{ matrix.target }}' == 'linux-aarch64' ]; then | |
sudo dpkg --add-architecture arm64 | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-armhf' ]; then | |
sudo dpkg --add-architecture armhf | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-i686' ]; then | |
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 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 gperf | |
elif [ '${{ matrix.target }}' == 'linux-riscv64' ]; then | |
sudo dpkg --add-architecture riscv64 | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64 gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then | |
sudo apt-get install -yqq libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev gperf | |
elif [ '${{ matrix.target }}' == 'wasm' ]; then | |
sudo apt-get install -yqq gperf | |
fi | |
# extra, for wasm | |
if [ '${{ matrix.target }}' == 'wasm' ]; then | |
[ -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 }} | |
fi | |
# extra, for win32 | |
if [ '${{ matrix.target }}' == 'win32' ]; then | |
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 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 gperf wine-stable | |
fi | |
# extra, for win64 | |
if [ '${{ matrix.target }}' == 'win64' ]; then | |
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 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 gperf wine-stable | |
fi | |
- name: (homebrew) Set up dependencies | |
if: ${{ matrix.installer == 'homebrew' }} | |
run: | | |
brew install cmake jq meson | |
- name: (apt) Cache debian packages | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
mkdir -p ~/PawPawBuilds/debs | |
sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/ | |
- name: Run bootstrap | |
shell: bash | |
run: | | |
if [ '${{ matrix.target }}' == 'wasm' ]; then | |
source ~/PawPawBuilds/emsdk/emsdk_env.sh | |
fi | |
./bootstrap-common.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }} | |
- name: Pack bootstrap build | |
shell: bash | |
run: | | |
tar -C ~/PawPawBuilds -czf common-${{ matrix.target }}.tar.gz builds targets | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: common-${{ matrix.target }} | |
path: common-${{ matrix.target }}.tar.gz | |
cardinal: | |
strategy: | |
matrix: | |
include: | |
- name: linux-aarch64 | |
installer: apt | |
os: ubuntu-20.04 | |
target: linux-aarch64 | |
- name: linux-armhf | |
installer: apt | |
os: ubuntu-20.04 | |
target: linux-armhf | |
- name: linux-i686 | |
installer: apt | |
os: ubuntu-20.04 | |
target: linux-i686 | |
- name: linux-riscv64 | |
installer: apt | |
os: ubuntu-20.04 | |
target: linux-riscv64 | |
- name: linux-x86_64 | |
installer: apt | |
os: ubuntu-20.04 | |
target: linux-x86_64 | |
- name: macos | |
installer: homebrew | |
os: macos-11 | |
target: macos | |
- name: macos-universal | |
installer: homebrew | |
os: macos-11 | |
target: macos-universal | |
- name: wasm | |
installer: apt | |
os: ubuntu-22.04 | |
target: wasm | |
- name: win32 | |
installer: apt | |
os: ubuntu-22.04 | |
target: win32 | |
- name: win64 | |
installer: apt | |
os: ubuntu-22.04 | |
target: win64 | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/PawPawBuilds | |
key: cardinal-${{ matrix.target }}-v${{ env.CACHE_VERSION }} | |
- name: (apt) Restore debian package cache | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \ | |
sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \ | |
fi | |
- name: (apt) Fix GitHub's mess in ubuntu-20.04 | |
if: ${{ matrix.os == 'ubuntu-20.04' }} | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo add-apt-repository -yn ppa:kxstudio-debian/toolchain | |
sudo apt-get update -qq | |
sudo apt-get install -yqq --allow-downgrades libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal | |
sudo apt-get purge -yqq libclang* libgbm* libllvm* libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4 | |
- name: (apt) Fix GitHub's mess in ubuntu-22.04 | |
if: ${{ matrix.os == 'ubuntu-22.04' }} | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo apt-get update -qq | |
- name: (apt) Set up dependencies (apt) | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
sudo apt-get update -qq | |
sudo apt-get install -yqq autopoint build-essential curl cmake jq meson | |
# extra, for using system libraries | |
if [ '${{ matrix.target }}' == 'linux-aarch64' ]; then | |
sudo dpkg --add-architecture arm64 | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-armhf' ]; then | |
sudo dpkg --add-architecture armhf | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-i686' ]; then | |
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 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 gperf | |
elif [ '${{ matrix.target }}' == 'linux-riscv64' ]; then | |
sudo dpkg --add-architecture riscv64 | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64 gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then | |
sudo apt-get install -yqq libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev gperf | |
elif [ '${{ matrix.target }}' == 'wasm' ]; then | |
sudo apt-get install -yqq gperf | |
fi | |
# extra, for wasm | |
if [ '${{ matrix.target }}' == 'wasm' ]; then | |
[ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk | |
cd ~/PawPawBuilds/emsdk && ./emsdk install latest && ./emsdk activate latest | |
fi | |
# extra, for win32 | |
if [ '${{ matrix.target }}' == 'win32' ]; then | |
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 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 gperf wine-stable | |
fi | |
# extra, for win64 | |
if [ '${{ matrix.target }}' == 'win64' ]; then | |
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 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 gperf wine-stable | |
fi | |
- name: (homebrew) Set up dependencies | |
if: ${{ matrix.installer == 'homebrew' }} | |
run: | | |
brew install cmake jq meson | |
- name: (apt) Cache debian packages | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
mkdir -p ~/PawPawBuilds/debs | |
sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/ | |
- name: Run bootstrap | |
shell: bash | |
run: | | |
if [ '${{ matrix.target }}' == 'wasm' ]; then \ | |
source ~/PawPawBuilds/emsdk/emsdk_env.sh; \ | |
fi | |
./bootstrap-cardinal.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }} | |
plugins: | |
strategy: | |
matrix: | |
include: | |
- name: linux-aarch64 | |
installer: apt | |
os: ubuntu-20.04 | |
target: linux-aarch64 | |
- name: linux-armhf | |
installer: apt | |
os: ubuntu-20.04 | |
target: linux-armhf | |
- name: linux-i686 | |
installer: apt | |
os: ubuntu-20.04 | |
target: linux-i686 | |
- name: linux-riscv64 | |
installer: apt | |
os: ubuntu-20.04 | |
target: linux-riscv64 | |
- name: linux-x86_64 | |
installer: apt | |
os: ubuntu-20.04 | |
target: linux-x86_64 | |
- name: macos | |
installer: homebrew | |
os: macos-11 | |
target: macos | |
- name: macos-universal | |
installer: homebrew | |
os: macos-11 | |
target: macos-universal | |
- name: wasm | |
installer: apt | |
os: ubuntu-22.04 | |
target: wasm | |
- name: win32 | |
installer: apt | |
os: ubuntu-22.04 | |
target: win32 | |
- name: win64 | |
installer: apt | |
os: ubuntu-22.04 | |
target: win64 | |
runs-on: ${{ matrix.os }} | |
needs: common | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/PawPawBuilds | |
key: plugins-${{ matrix.target }}-v${{ env.CACHE_VERSION }} | |
- name: (apt) Restore debian package cache | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \ | |
sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \ | |
fi | |
- name: (apt) Fix GitHub's mess in ubuntu-20.04 | |
if: ${{ matrix.os == 'ubuntu-20.04' }} | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo add-apt-repository -yn ppa:kxstudio-debian/toolchain | |
sudo apt-get update -qq | |
sudo apt-get install -yqq --allow-downgrades libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal | |
sudo apt-get purge -yqq libclang* libgbm* libllvm* libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4 | |
- name: (apt) Fix GitHub's mess in ubuntu-22.04 | |
if: ${{ matrix.os == 'ubuntu-22.04' }} | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo apt-get update -qq | |
- name: (apt) Set up dependencies (apt) | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
sudo apt-get update -qq | |
sudo apt-get install -yqq autopoint build-essential curl cmake jq meson | |
# extra, for using system libraries | |
if [ '${{ matrix.target }}' == 'linux-aarch64' ]; then | |
sudo dpkg --add-architecture arm64 | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-armhf' ]; then | |
sudo dpkg --add-architecture armhf | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-i686' ]; then | |
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 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 gperf | |
elif [ '${{ matrix.target }}' == 'linux-riscv64' ]; then | |
sudo dpkg --add-architecture riscv64 | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64 gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then | |
sudo apt-get install -yqq libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev gperf | |
elif [ '${{ matrix.target }}' == 'wasm' ]; then | |
sudo apt-get install -yqq gperf | |
fi | |
# extra, for wasm | |
if [ '${{ matrix.target }}' == 'wasm' ]; then | |
[ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk | |
cd ~/PawPawBuilds/emsdk && ./emsdk install latest && ./emsdk activate latest | |
fi | |
# extra, for win32 | |
if [ '${{ matrix.target }}' == 'win32' ]; then | |
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 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 gperf wine-stable | |
fi | |
# extra, for win64 | |
if [ '${{ matrix.target }}' == 'win64' ]; then | |
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 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 gperf wine-stable | |
fi | |
- name: (homebrew) Set up dependencies | |
if: ${{ matrix.installer == 'homebrew' }} | |
run: | | |
brew install cmake jq meson | |
- name: (apt) Cache debian packages | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
mkdir -p ~/PawPawBuilds/debs | |
sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/ | |
- name: Download common-${{ matrix.target }} | |
uses: actions/download-artifact@v3 | |
with: | |
name: common-${{ matrix.target }} | |
path: ~/PawPawBuilds | |
- name: Extract common-${{ matrix.target }} | |
shell: bash | |
run: | | |
cd ~/PawPawBuilds && \ | |
tar xf common-${{ matrix.target }}.tar.gz | |
- name: Run bootstrap | |
shell: bash | |
run: | | |
if [ '${{ matrix.target }}' == 'wasm' ]; then \ | |
source ~/PawPawBuilds/emsdk/emsdk_env.sh; \ | |
fi | |
./bootstrap-plugins.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }} | |
- name: Pack bootstrap build | |
shell: bash | |
run: | | |
tar -C ~/PawPawBuilds -czf plugins-${{ matrix.target }}.tar.gz builds targets | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: plugins-${{ matrix.target }} | |
path: plugins-${{ matrix.target }}.tar.gz | |
jack2: | |
strategy: | |
matrix: | |
include: | |
- name: macos | |
installer: homebrew | |
os: macos-11 | |
target: macos | |
- name: macos-universal | |
installer: homebrew | |
os: macos-11 | |
target: macos-universal | |
- name: win32 | |
installer: apt | |
os: ubuntu-22.04 | |
target: win32 | |
- name: win64 | |
installer: apt | |
os: ubuntu-22.04 | |
target: win64 | |
runs-on: ${{ matrix.os }} | |
needs: common | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/PawPawBuilds | |
key: jack2-${{ matrix.target }}-v${{ env.CACHE_VERSION }} | |
- name: (apt) Restore debian package cache | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \ | |
sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \ | |
fi | |
- name: (apt) Fix GitHub's mess in ubuntu-20.04 | |
if: ${{ matrix.os == 'ubuntu-20.04' }} | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo add-apt-repository -yn ppa:kxstudio-debian/toolchain | |
sudo apt-get update -qq | |
sudo apt-get install -yqq --allow-downgrades libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal | |
sudo apt-get purge -yqq libclang* libgbm* libllvm* libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4 | |
- name: (apt) Fix GitHub's mess in ubuntu-22.04 | |
if: ${{ matrix.os == 'ubuntu-22.04' }} | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo apt-get update -qq | |
- name: (apt) Set up dependencies (apt) | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
sudo apt-get update -qq | |
sudo apt-get install -yqq autopoint build-essential curl cmake jq meson | |
# extra, for using system libraries | |
if [ '${{ matrix.target }}' == 'linux-aarch64' ]; then | |
sudo dpkg --add-architecture arm64 | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-armhf' ]; then | |
sudo dpkg --add-architecture armhf | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-i686' ]; then | |
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 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 gperf | |
elif [ '${{ matrix.target }}' == 'linux-riscv64' ]; then | |
sudo dpkg --add-architecture riscv64 | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64 gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then | |
sudo apt-get install -yqq libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev gperf | |
elif [ '${{ matrix.target }}' == 'wasm' ]; then | |
sudo apt-get install -yqq gperf | |
fi | |
# extra, for wasm | |
if [ '${{ matrix.target }}' == 'wasm' ]; then | |
[ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk | |
cd ~/PawPawBuilds/emsdk && ./emsdk install latest && ./emsdk activate latest | |
fi | |
# extra, for win32 | |
if [ '${{ matrix.target }}' == 'win32' ]; then | |
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 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 gperf wine-stable | |
fi | |
# extra, for win64 | |
if [ '${{ matrix.target }}' == 'win64' ]; then | |
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 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 gperf wine-stable | |
fi | |
- name: (homebrew) Set up dependencies | |
if: ${{ matrix.installer == 'homebrew' }} | |
run: | | |
brew install cmake jq meson | |
- name: (apt) Cache debian packages | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
mkdir -p ~/PawPawBuilds/debs | |
sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/ | |
- name: Download common-${{ matrix.target }} | |
uses: actions/download-artifact@v3 | |
with: | |
name: common-${{ matrix.target }} | |
path: ~/PawPawBuilds | |
- name: Extract common-${{ matrix.target }} | |
shell: bash | |
run: | | |
cd ~/PawPawBuilds && \ | |
tar xf common-${{ matrix.target }}.tar.gz | |
- name: Run bootstrap | |
shell: bash | |
run: | | |
./bootstrap-jack2.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }} | |
- name: Pack bootstrap build | |
shell: bash | |
run: | | |
tar -C ~/PawPawBuilds -czf jack2-${{ matrix.target }}.tar.gz builds targets | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: jack2-${{ matrix.target }} | |
path: jack2-${{ matrix.target }}.tar.gz | |
qt: | |
strategy: | |
matrix: | |
include: | |
- name: macos | |
installer: homebrew | |
os: macos-11 | |
target: macos | |
- name: macos-universal | |
installer: homebrew | |
os: macos-11 | |
target: macos-universal | |
- name: win32 | |
installer: apt | |
os: ubuntu-22.04 | |
target: win32 | |
- name: win64 | |
installer: apt | |
os: ubuntu-22.04 | |
target: win64 | |
runs-on: ${{ matrix.os }} | |
needs: common | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/PawPawBuilds | |
key: qt-${{ matrix.target }}-v${{ env.CACHE_VERSION }} | |
- name: (apt) Restore debian package cache | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \ | |
sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \ | |
fi | |
- name: (apt) Fix GitHub's mess in ubuntu-20.04 | |
if: ${{ matrix.os == 'ubuntu-20.04' }} | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo add-apt-repository -yn ppa:kxstudio-debian/toolchain | |
sudo apt-get update -qq | |
sudo apt-get install -yqq --allow-downgrades libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal | |
sudo apt-get purge -yqq libclang* libgbm* libllvm* libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4 | |
- name: (apt) Fix GitHub's mess in ubuntu-22.04 | |
if: ${{ matrix.os == 'ubuntu-22.04' }} | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo apt-get update -qq | |
- name: (apt) Set up dependencies (apt) | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
sudo apt-get update -qq | |
sudo apt-get install -yqq autopoint build-essential curl cmake jq meson | |
# extra, for using system libraries | |
if [ '${{ matrix.target }}' == 'linux-aarch64' ]; then | |
sudo dpkg --add-architecture arm64 | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-armhf' ]; then | |
sudo dpkg --add-architecture armhf | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-i686' ]; then | |
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 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 gperf | |
elif [ '${{ matrix.target }}' == 'linux-riscv64' ]; then | |
sudo dpkg --add-architecture riscv64 | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64 gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then | |
sudo apt-get install -yqq libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev gperf | |
elif [ '${{ matrix.target }}' == 'wasm' ]; then | |
sudo apt-get install -yqq gperf | |
fi | |
# extra, for wasm | |
if [ '${{ matrix.target }}' == 'wasm' ]; then | |
[ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk | |
cd ~/PawPawBuilds/emsdk && ./emsdk install latest && ./emsdk activate latest | |
fi | |
# extra, for win32 | |
if [ '${{ matrix.target }}' == 'win32' ]; then | |
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 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 gperf wine-stable | |
fi | |
# extra, for win64 | |
if [ '${{ matrix.target }}' == 'win64' ]; then | |
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 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 gperf wine-stable | |
fi | |
- name: (homebrew) Set up dependencies | |
if: ${{ matrix.installer == 'homebrew' }} | |
run: | | |
brew install cmake jq meson | |
- name: (apt) Cache debian packages | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
mkdir -p ~/PawPawBuilds/debs | |
sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/ | |
- name: Download common-${{ matrix.target }} | |
uses: actions/download-artifact@v3 | |
with: | |
name: common-${{ matrix.target }} | |
path: ~/PawPawBuilds | |
- name: Extract common-${{ matrix.target }} | |
shell: bash | |
run: | | |
cd ~/PawPawBuilds && \ | |
tar xf common-${{ matrix.target }}.tar.gz | |
- name: Run bootstrap | |
shell: bash | |
run: | | |
./bootstrap-qt.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }} | |
- name: Pack bootstrap build | |
shell: bash | |
run: | | |
tar -C ~/PawPawBuilds -czf qt-${{ matrix.target }}.tar.gz builds targets | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: qt-${{ matrix.target }} | |
path: qt-${{ matrix.target }}.tar.gz | |
carla: | |
strategy: | |
matrix: | |
include: | |
#- name: macos | |
#installer: homebrew | |
#os: macos-11 | |
#target: macos | |
- name: macos-universal | |
installer: homebrew | |
os: macos-11 | |
target: macos-universal | |
- name: win32 | |
installer: apt | |
os: ubuntu-22.04 | |
target: win32 | |
- name: win64 | |
installer: apt | |
os: ubuntu-22.04 | |
target: win64 | |
runs-on: ${{ matrix.os }} | |
needs: [plugins, qt] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/PawPawBuilds | |
key: carla-${{ matrix.target }}-v${{ env.CACHE_VERSION }} | |
- name: (apt) Restore debian package cache | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \ | |
sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \ | |
fi | |
- name: (apt) Fix GitHub's mess in ubuntu-20.04 | |
if: ${{ matrix.os == 'ubuntu-20.04' }} | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo add-apt-repository -yn ppa:kxstudio-debian/toolchain | |
sudo apt-get update -qq | |
sudo apt-get install -yqq --allow-downgrades libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal | |
sudo apt-get purge -yqq libclang* libgbm* libllvm* libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4 | |
- name: (apt) Fix GitHub's mess in ubuntu-22.04 | |
if: ${{ matrix.os == 'ubuntu-22.04' }} | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo apt-get update -qq | |
- name: (apt) Set up dependencies (apt) | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
sudo apt-get update -qq | |
sudo apt-get install -yqq autopoint build-essential curl cmake jq meson | |
# extra, for using system libraries | |
if [ '${{ matrix.target }}' == 'linux-aarch64' ]; then | |
sudo dpkg --add-architecture arm64 | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-armhf' ]; then | |
sudo dpkg --add-architecture armhf | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-i686' ]; then | |
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 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 gperf | |
elif [ '${{ matrix.target }}' == 'linux-riscv64' ]; then | |
sudo dpkg --add-architecture riscv64 | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /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 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64 gperf qemu-user-static | |
elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then | |
sudo apt-get install -yqq libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev gperf | |
elif [ '${{ matrix.target }}' == 'wasm' ]; then | |
sudo apt-get install -yqq gperf | |
fi | |
# extra, for wasm | |
if [ '${{ matrix.target }}' == 'wasm' ]; then | |
[ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk | |
cd ~/PawPawBuilds/emsdk && ./emsdk install latest && ./emsdk activate latest | |
fi | |
# extra, for win32 | |
if [ '${{ matrix.target }}' == 'win32' ]; then | |
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 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 gperf wine-stable | |
fi | |
# extra, for win64 | |
if [ '${{ matrix.target }}' == 'win64' ]; then | |
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 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 gperf wine-stable | |
fi | |
- name: (homebrew) Set up dependencies | |
if: ${{ matrix.installer == 'homebrew' }} | |
run: | | |
brew install cmake jq meson | |
- name: (apt) Cache debian packages | |
if: ${{ matrix.installer == 'apt' }} | |
run: | | |
mkdir -p ~/PawPawBuilds/debs | |
sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/ | |
- name: Download common-${{ matrix.target }} | |
uses: actions/download-artifact@v3 | |
with: | |
name: common-${{ matrix.target }} | |
path: ~/PawPawBuilds | |
- name: Download qt-${{ matrix.target }} | |
uses: actions/download-artifact@v3 | |
with: | |
name: qt-${{ matrix.target }} | |
path: ~/PawPawBuilds | |
- name: Download plugins-${{ matrix.target }} | |
uses: actions/download-artifact@v3 | |
with: | |
name: plugins-${{ matrix.target }} | |
path: ~/PawPawBuilds | |
- name: Extract {common,plugins,qt}-${{ matrix.target }} | |
shell: bash | |
run: | | |
cd ~/PawPawBuilds && \ | |
tar xf common-${{ matrix.target }}.tar.gz && \ | |
tar xf plugins-${{ matrix.target }}.tar.gz && \ | |
tar xf qt-${{ matrix.target }}.tar.gz | |
- name: Run bootstrap | |
shell: bash | |
run: | | |
./bootstrap-carla.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }} |