From ff7ecdf6caab5bbb3ef03b34d37f011de2303ae1 Mon Sep 17 00:00:00 2001 From: falkTX Date: Tue, 5 Dec 2023 17:40:39 +0100 Subject: [PATCH] More CI fixes Signed-off-by: falkTX --- .github/workflows/bootstrap-deps.sh | 80 +-- .github/workflows/bootstrap.yml | 1012 ++++++++++++++------------- bootstrap-carla.sh | 2 + bootstrap-common.sh | 117 +++- bootstrap-mod.sh | 123 +--- bootstrap-plugins.sh | 4 + bootstrap-python.sh | 2 +- bootstrap-qt.sh | 41 +- 8 files changed, 734 insertions(+), 647 deletions(-) diff --git a/.github/workflows/bootstrap-deps.sh b/.github/workflows/bootstrap-deps.sh index 4e442bd..92a032e 100755 --- a/.github/workflows/bootstrap-deps.sh +++ b/.github/workflows/bootstrap-deps.sh @@ -55,73 +55,69 @@ function install_compiler() { fi ;; "win32") - dpkg --add-architecture i386 - apt-get update -qq - apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 - if [ "$(lsb_release -si 2>/dev/null)" = "Debian" ]; then - apt-get install -yqq wine wine32 - else - apt-get install -yqq wine-stable - fi + apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 ;; "win64") - dpkg --add-architecture i386 - apt-get update -qq - apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 - if [ "$(lsb_release -si 2>/dev/null)" = "Debian" ]; then - apt-get install -yqq wine wine32 wine64 - else - apt-get install -yqq wine-stable - fi + apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 ;; esac } case "${1}" in "macos"|"macos-universal"|"macos-universal-10.15") - brew install cmake git jq meson + brew install autoconf automake cmake coreutils gawk git gnu-sed jq make meson - [ -n "${GITHUB_ENV}" ] && echo "PAWPAW_PACK_NAME=${1}-$(sw_vers -productVersion)" >> "${GITHUB_ENV}" + [ -n "${GITHUB_ENV}" ] && echo "PAWPAW_PACK_NAME=${1}-$(sw_vers -productVersion | cut -d '.' -f 1)" >> "${GITHUB_ENV}" ;; *) apt-get update -qq - apt-get install -yqq autoconf automake autopoint build-essential curl cmake dpkg-dev file git jq libtool lsb-release meson gperf patchelf + apt-get install -yqq autoconf automake build-essential curl cmake dpkg-dev file git jq libglib2.0-dev-bin libtool lsb-release make meson gperf patchelf - arch=$(get_linux_deb_arch "${1}") + linux_arch=$(get_linux_deb_arch "${1}") release=$(lsb_release -cs 2>/dev/null) - if [ -n "${arch}" ]; then + if [ -n "${linux_arch}" ]; then if [ "$(lsb_release -si 2>/dev/null)" = "Ubuntu" ]; then sed -i "s/deb http/deb [arch=i386,amd64] http/" /etc/apt/sources.list sed -i "s/deb mirror/deb [arch=i386,amd64] mirror/" /etc/apt/sources.list - if [ "${arch}" != "amd64" ] && [ "${arch}" != "i386" ]; then - echo "deb [arch=${arch}] http://ports.ubuntu.com/ubuntu-ports ${release} main restricted universe multiverse" | tee -a /etc/apt/sources.list - echo "deb [arch=${arch}] http://ports.ubuntu.com/ubuntu-ports ${release}-updates main restricted universe multiverse" | tee -a /etc/apt/sources.list - echo "deb [arch=${arch}] http://ports.ubuntu.com/ubuntu-ports ${release}-backports main restricted universe multiverse" | tee -a /etc/apt/sources.list + if [ "${linux_arch}" != "amd64" ] && [ "${linux_arch}" != "i386" ]; then + echo "deb [arch=${linux_arch}] http://ports.ubuntu.com/ubuntu-ports ${release} main restricted universe multiverse" | tee -a /etc/apt/sources.list + echo "deb [arch=${linux_arch}] http://ports.ubuntu.com/ubuntu-ports ${release}-updates main restricted universe multiverse" | tee -a /etc/apt/sources.list + echo "deb [arch=${linux_arch}] http://ports.ubuntu.com/ubuntu-ports ${release}-backports main restricted universe multiverse" | tee -a /etc/apt/sources.list fi fi - - dpkg --add-architecture ${arch} + dpkg --add-architecture ${linux_arch} apt-get update -qq apt-get install -yqq \ binfmt-support \ qemu-user-static \ - libasound2-dev:${arch} \ - libdbus-1-dev:${arch} \ - libgl1-mesa-dev:${arch} \ - libglib2.0-dev:${arch} \ - libpcre2-dev:${arch} \ - libpcre3-dev:${arch} \ - libx11-dev:${arch} \ - libxcb1-dev:${arch} \ - libxcursor-dev:${arch} \ - libxext-dev:${arch} \ - libxfixes-dev:${arch} \ - libxrandr-dev:${arch} \ - libxrender-dev:${arch} \ - uuid-dev:${arch} + qtbase5-dev-tools \ + libasound2-dev:${linux_arch} \ + libdbus-1-dev:${linux_arch} \ + libgl1-mesa-dev:${linux_arch} \ + libglib2.0-dev:${linux_arch} \ + libpcre2-dev:${linux_arch} \ + libpcre3-dev:${linux_arch} \ + libqt5svg5-dev:${linux_arch} \ + libx11-dev:${linux_arch} \ + libxcb1-dev:${linux_arch} \ + libxcursor-dev:${linux_arch} \ + libxext-dev:${linux_arch} \ + libxfixes-dev:${linux_arch} \ + libxrandr-dev:${linux_arch} \ + libxrender-dev:${linux_arch} \ + qtbase5-dev:${linux_arch} \ + uuid-dev:${linux_arch} + elif [ "${1}" = "win32" ] || [ "${1}" = "win64" ]; then + dpkg --add-architecture i386 + apt-get update -qq + apt-get install -yqq autopoint libffi-dev libreadline-dev mingw-w64 uuid-dev zlib1g-dev + if [ "$(lsb_release -si 2>/dev/null)" = "Debian" ]; then + apt-get install -yqq wine wine32 wine64 + else + apt-get install -yqq wine-stable + fi fi - # libqt5svg5-dev qtbase5-dev qtbase5-dev-tools case "${release}" in "bionic"|"focal") diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml index 50ee1d2..120a849 100644 --- a/.github/workflows/bootstrap.yml +++ b/.github/workflows/bootstrap.yml @@ -4,9 +4,8 @@ on: push: env: - CACHE_VERSION: 1 + CACHE_VERSION: 3 DEBIAN_FRONTEND: noninteractive - EMSCRIPTEN_VERSION: 3.1.27 PAWPAW_SKIP_TESTS: 1 jobs: @@ -14,13 +13,42 @@ jobs: strategy: matrix: include: - # macos + # macos 11 - target: macos os: macos-11 - target: macos-universal os: macos-11 - target: macos-universal-10.15 os: macos-11 + # macos 12 + - target: macos + os: macos-12 + - target: macos-universal + os: macos-12 + - target: macos-universal-10.15 + os: macos-12 + # debian:11 + - target: linux-aarch64 + container: debian:11 + os: ubuntu-latest + - target: linux-armhf + container: debian:11 + os: ubuntu-latest + - target: linux-i686 + container: debian:11 + os: ubuntu-latest + - target: linux-x86_64 + container: debian:11 + os: ubuntu-latest + - target: wasm + container: debian:11 + os: ubuntu-latest + - target: win32 + container: debian:11 + os: ubuntu-latest + - target: win64 + container: debian:11 + os: ubuntu-latest # debian:12 - target: linux-aarch64 container: debian:12 @@ -150,21 +178,49 @@ jobs: strategy: matrix: include: - # macos + # macos 11 - target: macos os: macos-11 - target: macos-universal os: macos-11 - target: macos-universal-10.15 os: macos-11 + # macos 12 + - target: macos + os: macos-12 + - target: macos-universal + os: macos-12 + - target: macos-universal-10.15 + os: macos-12 + # debian:11 + - target: linux-aarch64 + container: debian:11 + os: ubuntu-latest + - target: linux-armhf + container: debian:11 + os: ubuntu-latest + - target: linux-i686 + container: debian:11 + os: ubuntu-latest + - target: linux-x86_64 + container: debian:11 + os: ubuntu-latest + - target: wasm + container: debian:11 + os: ubuntu-latest + - target: win32 + container: debian:11 + os: ubuntu-latest + - target: win64 + container: debian:11 + os: ubuntu-latest # debian:12 - # FIXME Could not invoke sanity test executable - #- target: linux-aarch64 - #container: debian:12 - #os: ubuntu-latest - #- target: linux-armhf - #container: debian:12 - #os: ubuntu-latest + - target: linux-aarch64 + container: debian:12 + os: ubuntu-latest + - target: linux-armhf + container: debian:12 + os: ubuntu-latest - target: linux-i686 container: debian:12 os: ubuntu-latest @@ -174,12 +230,12 @@ jobs: - target: wasm container: debian:12 os: ubuntu-latest - #- target: win32 - #container: debian:12 - #os: ubuntu-latest - #- target: win64 - #container: debian:12 - #os: ubuntu-latest + - target: win32 + container: debian:12 + os: ubuntu-latest + - target: win64 + container: debian:12 + os: ubuntu-latest # ubuntu:18.04 # FIXME needs CMake 3.15 #- target: linux-aarch64 @@ -195,36 +251,34 @@ jobs: #container: ubuntu:18.04 #os: ubuntu-latest # ubuntu:20.04 - # FIXME Could not invoke sanity test executable - #- target: linux-aarch64 - #container: ubuntu:20.04 - #os: ubuntu-latest - #- target: linux-armhf - #container: ubuntu:20.04 - #os: ubuntu-latest + - target: linux-aarch64 + container: ubuntu:20.04 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:20.04 + os: ubuntu-latest - target: linux-i686 container: ubuntu:20.04 os: ubuntu-latest - #- target: linux-riscv64 - #container: ubuntu:20.04 - #os: ubuntu-latest + - target: linux-riscv64 + container: ubuntu:20.04 + os: ubuntu-latest - target: linux-x86_64 container: ubuntu:20.04 os: ubuntu-latest # ubuntu:22.04 - # FIXME Could not invoke sanity test executable - #- target: linux-aarch64 - #container: ubuntu:22.04 - #os: ubuntu-latest - #- target: linux-armhf - #container: ubuntu:22.04 - #os: ubuntu-latest + - target: linux-aarch64 + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:22.04 + os: ubuntu-latest - target: linux-i686 container: ubuntu:22.04 os: ubuntu-latest - #- target: linux-riscv64 - #container: ubuntu:22.04 - #os: ubuntu-latest + - target: linux-riscv64 + container: ubuntu:22.04 + os: ubuntu-latest - target: linux-x86_64 container: ubuntu:22.04 os: ubuntu-latest @@ -238,28 +292,27 @@ jobs: container: ubuntu:22.04 os: ubuntu-latest # ubuntu:23.10 - # FIXME Could not invoke sanity test executable - #- target: linux-aarch64 - #container: ubuntu:23.10 - #os: ubuntu-latest - #- target: linux-armhf - #container: ubuntu:23.10 - #os: ubuntu-latest - #- target: linux-riscv64 - #container: ubuntu:23.10 - #os: ubuntu-latest + - target: linux-aarch64 + container: ubuntu:23.10 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:23.10 + os: ubuntu-latest + - target: linux-riscv64 + container: ubuntu:23.10 + os: ubuntu-latest - target: linux-x86_64 container: ubuntu:23.10 os: ubuntu-latest - target: wasm container: ubuntu:23.10 os: ubuntu-latest - #- target: win32 - #container: ubuntu:23.10 - #os: ubuntu-latest - #- target: win64 - #container: ubuntu:23.10 - #os: ubuntu-latest + - target: win32 + container: ubuntu:23.10 + os: ubuntu-latest + - target: win64 + container: ubuntu:23.10 + os: ubuntu-latest runs-on: ${{ matrix.os }} container: image: ${{ matrix.container }} @@ -283,8 +336,8 @@ jobs: - name: Extract common shell: bash run: | - cd ~/PawPawBuilds && \ - tar xf common-${{ env.PAWPAW_PACK_NAME }}.tar.gz + cd ~/PawPawBuilds && \ + tar xf common-${{ env.PAWPAW_PACK_NAME }}.tar.gz - name: Run bootstrap shell: bash run: | @@ -298,426 +351,231 @@ jobs: name: plugins-${{ env.PAWPAW_PACK_NAME }} path: plugins-${{ env.PAWPAW_PACK_NAME }}.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: macos-universal-10.15 - #installer: homebrew - #os: macos-11 - #target: macos-universal-10.15 - #- 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 - #if: ${{ matrix.installer == 'apt' }} - #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* msbuild* nginx* perl php* libgdiplus libpcre2-posix3 libselinux1-dev libzip4 - #sudo apt-get install -yqq --allow-downgrades git/jammy - #- name: (apt) Set up dependencies (apt) - #if: ${{ matrix.installer == 'apt' }} - #run: | - #sudo apt-get update -qq - ## 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 - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-arm64.list - #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-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 jammy-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 --allow-downgrades g++-aarch64-linux-gnu libasound2-dev:arm64 libatomic1:arm64 libc6:arm64 libdbus-1-dev:arm64 libgcc-s1:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 liblo-dev:arm64 libstdc++6: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 - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-armhf.list - #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-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 jammy-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 --allow-downgrades g++-arm-linux-gnueabihf libasound2-dev:armhf libatomic1:armhf libc6:armhf libdbus-1-dev:armhf libgcc-s1:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf liblo-dev:armhf libstdc++6: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 libsdl2-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 - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-riscv64.list - #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-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 jammy-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 qemu-user-static - #elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then - #sudo apt-get install -yqq --allow-downgrades 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 --allow-downgrades autoconf automake git 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 - #sudo apt-get install -yqq --allow-downgrades autoconf automake autopoint build-essential curl cmake git jq meson - #- name: (homebrew) Set up dependencies - #if: ${{ matrix.installer == 'homebrew' }} - #run: | - #brew install cmake git 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: macos-universal-10.15 - #installer: homebrew - #os: macos-11 - #target: macos-universal-10.15 - #- 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 - #if: ${{ matrix.installer == 'apt' }} - #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* msbuild* nginx* perl php* libgdiplus libpcre2-posix3 libselinux1-dev libzip4 - #sudo apt-get install -yqq --allow-downgrades git/jammy - #- name: (apt) Set up dependencies (apt) - #if: ${{ matrix.installer == 'apt' }} - #run: | - #sudo apt-get update -qq - ## 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 - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-arm64.list - #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-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 jammy-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 --allow-downgrades g++-aarch64-linux-gnu libasound2-dev:arm64 libatomic1:arm64 libc6:arm64 libdbus-1-dev:arm64 libgcc-s1:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 liblo-dev:arm64 libstdc++6: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 - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-armhf.list - #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-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 jammy-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 --allow-downgrades g++-arm-linux-gnueabihf libasound2-dev:armhf libatomic1:armhf libc6:armhf libdbus-1-dev:armhf libgcc-s1:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf liblo-dev:armhf libstdc++6: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 libsdl2-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 - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-riscv64.list - #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-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 jammy-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 qemu-user-static - #elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then - #sudo apt-get install -yqq --allow-downgrades 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 --allow-downgrades autoconf automake git 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 - #sudo apt-get install -yqq --allow-downgrades autoconf automake autopoint build-essential curl cmake git jq meson - #- name: (homebrew) Set up dependencies - #if: ${{ matrix.installer == 'homebrew' }} - #run: | - #brew install cmake git 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-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 - #if: ${{ matrix.installer == 'apt' }} - #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* msbuild* nginx* perl php* libgdiplus libpcre2-posix3 libselinux1-dev libzip4 - #sudo apt-get install -yqq --allow-downgrades git/jammy - #- name: (apt) Set up dependencies (apt) - #if: ${{ matrix.installer == 'apt' }} - #run: | - #sudo apt-get update -qq - ## 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 - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-arm64.list - #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-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 jammy-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 --allow-downgrades g++-aarch64-linux-gnu libasound2-dev:arm64 libatomic1:arm64 libc6:arm64 libdbus-1-dev:arm64 libgcc-s1:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 liblo-dev:arm64 libstdc++6: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 - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-armhf.list - #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-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 jammy-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 --allow-downgrades g++-arm-linux-gnueabihf libasound2-dev:armhf libatomic1:armhf libc6:armhf libdbus-1-dev:armhf libgcc-s1:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf liblo-dev:armhf libstdc++6: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 libsdl2-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 - #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list - #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-riscv64.list - #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-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 jammy-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 qemu-user-static - #elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then - #sudo apt-get install -yqq --allow-downgrades 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 --allow-downgrades autoconf automake git 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 - #sudo apt-get install -yqq --allow-downgrades autoconf automake autopoint build-essential curl cmake git jq meson - #- name: (homebrew) Set up dependencies - #if: ${{ matrix.installer == 'homebrew' }} - #run: | - #brew install cmake git 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 }} + jack2: + strategy: + matrix: + include: + # macos 11 + - target: macos + os: macos-11 + - target: macos-universal + os: macos-11 + - target: macos-universal-10.15 + os: macos-11 + # macos 12 + - target: macos + os: macos-12 + - target: macos-universal + os: macos-12 + - target: macos-universal-10.15 + os: macos-12 + # debian:11 + - target: linux-aarch64 + container: debian:11 + os: ubuntu-latest + - target: linux-armhf + container: debian:11 + os: ubuntu-latest + - target: linux-i686 + container: debian:11 + os: ubuntu-latest + - target: linux-x86_64 + container: debian:11 + os: ubuntu-latest + - target: win32 + container: debian:11 + os: ubuntu-latest + - target: win64 + container: debian:11 + os: ubuntu-latest + # debian:12 + - target: linux-aarch64 + container: debian:12 + os: ubuntu-latest + - target: linux-armhf + container: debian:12 + os: ubuntu-latest + - target: linux-i686 + container: debian:12 + os: ubuntu-latest + - target: linux-x86_64 + container: debian:12 + os: ubuntu-latest + - target: win32 + container: debian:12 + os: ubuntu-latest + - target: win64 + container: debian:12 + os: ubuntu-latest + # ubuntu:18.04 + - target: linux-aarch64 + container: ubuntu:18.04 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:18.04 + os: ubuntu-latest + - target: linux-i686 + container: ubuntu:18.04 + os: ubuntu-latest + - target: linux-x86_64 + container: ubuntu:18.04 + os: ubuntu-latest + # ubuntu:20.04 + - target: linux-aarch64 + container: ubuntu:20.04 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:20.04 + os: ubuntu-latest + - target: linux-i686 + container: ubuntu:20.04 + os: ubuntu-latest + - target: linux-riscv64 + container: ubuntu:20.04 + os: ubuntu-latest + - target: linux-x86_64 + container: ubuntu:20.04 + os: ubuntu-latest + # ubuntu:22.04 + - target: linux-aarch64 + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-i686 + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-riscv64 + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-x86_64 + container: ubuntu:22.04 + os: ubuntu-latest + - target: win32 + container: ubuntu:22.04 + os: ubuntu-latest + - target: win64 + container: ubuntu:22.04 + os: ubuntu-latest + # ubuntu:23.10 + - target: linux-aarch64 + container: ubuntu:23.10 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:23.10 + os: ubuntu-latest + - target: linux-riscv64 + container: ubuntu:23.10 + os: ubuntu-latest + - target: linux-x86_64 + container: ubuntu:23.10 + os: ubuntu-latest + - target: win32 + container: ubuntu:23.10 + os: ubuntu-latest + - target: win64 + container: ubuntu:23.10 + os: ubuntu-latest + runs-on: ${{ matrix.os }} + container: + image: ${{ matrix.container }} + needs: common + steps: + - uses: actions/checkout@v3 + - name: Set up cache + uses: actions/cache@v3 + with: + path: | + ~/PawPawBuilds + key: jack2-${{ matrix.container || matrix.os }}-${{ matrix.target }}-v${{ env.CACHE_VERSION }} + - name: Set up dependencies + run: | + ./.github/workflows/bootstrap-deps.sh ${{ matrix.target }} + - name: Download common + uses: actions/download-artifact@v3 + with: + name: common-${{ env.PAWPAW_PACK_NAME }} + path: ~/PawPawBuilds + - name: Extract common + shell: bash + run: | + cd ~/PawPawBuilds && \ + tar xf common-${{ env.PAWPAW_PACK_NAME }}.tar.gz + - name: Run bootstrap + shell: bash + run: | + ./bootstrap-jack2.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }} - cardinal: - env: - PAWPAW_SKIP_LTO: 1 - PAWPAW_SKIP_GLIB: 1 - PAWPAW_SKIP_LV2: 1 - PAWPAW_SKIP_OPENSSL: 1 - PAWPAW_SKIP_SAMPLERATE: 1 + qt: strategy: matrix: include: + # macos 11 + - target: macos + os: macos-11 + - target: macos-universal + os: macos-11 + - target: macos-universal-10.15 + os: macos-11 + # macos 12 + - target: macos + os: macos-12 + - target: macos-universal + os: macos-12 + - target: macos-universal-10.15 + os: macos-12 + # debian:11 + - target: linux-aarch64 + container: debian:11 + os: ubuntu-latest + - target: linux-armhf + container: debian:11 + os: ubuntu-latest + - target: linux-i686 + container: debian:11 + os: ubuntu-latest + - target: linux-x86_64 + container: debian:11 + os: ubuntu-latest + - target: win32 + container: debian:11 + os: ubuntu-latest + - target: win64 + container: debian:11 + os: ubuntu-latest + # debian:12 + - target: linux-aarch64 + container: debian:12 + os: ubuntu-latest + - target: linux-armhf + container: debian:12 + os: ubuntu-latest + - target: linux-i686 + container: debian:12 + os: ubuntu-latest + - target: linux-x86_64 + container: debian:12 + os: ubuntu-latest + - target: win32 + container: debian:12 + os: ubuntu-latest + - target: win64 + container: debian:12 + os: ubuntu-latest + # ubuntu:18.04 + - target: linux-aarch64 + container: ubuntu:18.04 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:18.04 + os: ubuntu-latest + - target: linux-i686 + container: ubuntu:18.04 + os: ubuntu-latest + - target: linux-x86_64 + container: ubuntu:18.04 + os: ubuntu-latest # ubuntu:20.04 - target: linux-aarch64 container: ubuntu:20.04 @@ -734,6 +592,112 @@ jobs: - target: linux-x86_64 container: ubuntu:20.04 os: ubuntu-latest + # ubuntu:22.04 + - target: linux-aarch64 + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-i686 + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-riscv64 + container: ubuntu:22.04 + os: ubuntu-latest + - target: linux-x86_64 + container: ubuntu:22.04 + os: ubuntu-latest + - target: win32 + container: ubuntu:22.04 + os: ubuntu-latest + - target: win64 + container: ubuntu:22.04 + os: ubuntu-latest + # ubuntu:23.10 + - target: linux-aarch64 + container: ubuntu:23.10 + os: ubuntu-latest + - target: linux-armhf + container: ubuntu:23.10 + os: ubuntu-latest + - target: linux-riscv64 + container: ubuntu:23.10 + os: ubuntu-latest + - target: linux-x86_64 + container: ubuntu:23.10 + os: ubuntu-latest + - target: win32 + container: ubuntu:23.10 + os: ubuntu-latest + - target: win64 + container: ubuntu:23.10 + os: ubuntu-latest + runs-on: ${{ matrix.os }} + container: + image: ${{ matrix.container }} + needs: common + steps: + - uses: actions/checkout@v3 + - name: Set up cache + uses: actions/cache@v3 + with: + path: | + ~/PawPawBuilds + key: qt-${{ matrix.container || matrix.os }}-${{ matrix.target }}-v${{ env.CACHE_VERSION }} + - name: Set up dependencies + run: | + ./.github/workflows/bootstrap-deps.sh ${{ matrix.target }} + - name: Download common + uses: actions/download-artifact@v3 + with: + name: common-${{ env.PAWPAW_PACK_NAME }} + path: ~/PawPawBuilds + - name: Extract common + shell: bash + run: | + cd ~/PawPawBuilds && \ + tar xf common-${{ env.PAWPAW_PACK_NAME }}.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-${{ env.PAWPAW_PACK_NAME }}.tar.gz builds targets + - uses: actions/upload-artifact@v3 + with: + name: qt-${{ env.PAWPAW_PACK_NAME }} + path: qt-${{ env.PAWPAW_PACK_NAME }}.tar.gz + + cardinal: + env: + PAWPAW_SKIP_LTO: 1 + PAWPAW_SKIP_GLIB: 1 + PAWPAW_SKIP_LV2: 1 + PAWPAW_SKIP_OPENSSL: 1 + PAWPAW_SKIP_SAMPLERATE: 1 + strategy: + matrix: + include: + # ubuntu:20.04 + # FIXME Cannot use the installed version of file (5.38) to cross-compile file 5.34 + #- target: linux-aarch64 + #container: ubuntu:20.04 + #os: ubuntu-latest + #- target: linux-armhf + #container: ubuntu:20.04 + #os: ubuntu-latest + #- target: linux-i686 + #container: ubuntu:20.04 + #os: ubuntu-latest + #- target: linux-riscv64 + #container: ubuntu:20.04 + #os: ubuntu-latest + #- target: linux-x86_64 + #container: ubuntu:20.04 + #os: ubuntu-latest - target: macos-universal-10.15 os: macos-11 - target: wasm @@ -764,18 +728,112 @@ jobs: run: | ./bootstrap-cardinal.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }} + carla: + env: + PAWPAW_SKIP_OPENSSL: 1 + strategy: + matrix: + include: + - target: macos-universal + os: macos-11 + - target: win32 + container: debian:12 + os: ubuntu-latest + - target: win64 + container: debian:12 + os: ubuntu-latest + runs-on: ${{ matrix.os }} + container: + image: ${{ matrix.container }} + needs: [plugins, qt] + steps: + - uses: actions/checkout@v3 + - name: Set up cache + uses: actions/cache@v3 + with: + path: | + ~/PawPawBuilds + key: qt-${{ matrix.container || matrix.os }}-${{ matrix.target }}-v${{ env.CACHE_VERSION }} + - name: Set up dependencies + run: | + ./.github/workflows/bootstrap-deps.sh ${{ matrix.target }} + - name: Download common + uses: actions/download-artifact@v3 + with: + name: common-${{ env.PAWPAW_PACK_NAME }} + path: ~/PawPawBuilds + - name: Download plugins + uses: actions/download-artifact@v3 + with: + name: plugins-${{ env.PAWPAW_PACK_NAME }} + path: ~/PawPawBuilds + - name: Download qt + uses: actions/download-artifact@v3 + with: + name: qt-${{ env.PAWPAW_PACK_NAME }} + path: ~/PawPawBuilds + - name: Extract {common,plugins,qt} + shell: bash + run: | + cd ~/PawPawBuilds && \ + tar xf common-${{ env.PAWPAW_PACK_NAME }}.tar.gz && \ + tar xf plugins-${{ env.PAWPAW_PACK_NAME }}.tar.gz && \ + tar xf qt-${{ env.PAWPAW_PACK_NAME }}.tar.gz + - name: Run bootstrap + shell: bash + run: | + ./bootstrap-carla.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }} + modaudio: strategy: matrix: include: - # FIXME needs CMake 3.15 + # macos 11 + - target: macos-universal-10.15 + os: macos-11 + # macos 12 + - target: macos-universal-10.15 + os: macos-12 + # debian 11 + # FIXME debian:11 needs meson 0.58 + #- target: linux-x86_64 + #container: debian:11 + #os: ubuntu-latest + #- target: win64 + #container: debian:11 + #os: ubuntu-latest + # debian 12 + - target: linux-x86_64 + container: debian:12 + os: ubuntu-latest + # FIXME std::mutex issues + #- target: win64 + #container: debian:12 + #os: ubuntu-latest + # ubuntu 18.04 + # FIXME ubuntu:18.04 needs CMake 3.15 + # FIXME ubuntu:18.04 needs meson 0.58 #- target: linux-x86_64 #container: ubuntu:18.04 #os: ubuntu-latest - - target: macos-universal-10.15 - os: macos-11 + # ubuntu 20.04 + # FIXME ubuntu:20.04 needs meson 0.58 + #- target: linux-x86_64 + #container: ubuntu:20.04 + #os: ubuntu-latest + # ubuntu 22.04 + - target: linux-x86_64 + container: ubuntu:22.04 + os: ubuntu-latest - target: win64 - container: debian:12 + container: ubuntu:22.04 + os: ubuntu-latest + # ubuntu 23.10 + - target: linux-x86_64 + container: ubuntu:23.10 + os: ubuntu-latest + - target: win64 + container: ubuntu:23.10 os: ubuntu-latest runs-on: ${{ matrix.os }} container: @@ -791,10 +849,6 @@ jobs: - name: Set up dependencies run: | ./.github/workflows/bootstrap-deps.sh ${{ matrix.target }} - - name: Set up extra dependencies - if: ${{ matrix.target == 'linux-x86_64' }} - run: | - apt-get install -yqq libqt5svg5-dev qtbase5-dev qtbase5-dev-tools - name: Run bootstrap shell: bash run: | diff --git a/bootstrap-carla.sh b/bootstrap-carla.sh index 67835e4..908cd62 100755 --- a/bootstrap-carla.sh +++ b/bootstrap-carla.sh @@ -18,6 +18,8 @@ fi # --------------------------------------------------------------------------------------------------------------------- # run bootstrap dependencies +export PAWPAW_SKIP_OPENSSL=1 + ./bootstrap-common.sh "${target}" ./bootstrap-plugins.sh "${target}" diff --git a/bootstrap-common.sh b/bootstrap-common.sh index 031d9e6..0fa5853 100755 --- a/bootstrap-common.sh +++ b/bootstrap-common.sh @@ -75,7 +75,122 @@ mkdir -p "${PAWPAW_PREFIX}" mkdir -p "${PAWPAW_TMPDIR}" # --------------------------------------------------------------------------------------------------------------------- -# let's use some native libs for linux builds +# merged usr mode + +mkdir -p "${PAWPAW_PREFIX}/bin" +mkdir -p "${PAWPAW_PREFIX}/docs" +mkdir -p "${PAWPAW_PREFIX}/etc" +mkdir -p "${PAWPAW_PREFIX}/include" +mkdir -p "${PAWPAW_PREFIX}/lib" +mkdir -p "${PAWPAW_PREFIX}/share" +mkdir -p "${PAWPAW_PREFIX}/usr" + +if [ ! -e "${PAWPAW_PREFIX}/usr/bin" ]; then + ln -s ../bin "${PAWPAW_PREFIX}/usr/bin" +fi +if [ ! -e "${PAWPAW_PREFIX}/usr/docs" ]; then + ln -s ../docs "${PAWPAW_PREFIX}/usr/docs" +fi +if [ ! -e "${PAWPAW_PREFIX}/usr/etc" ]; then + ln -s ../etc "${PAWPAW_PREFIX}/usr/etc" +fi +if [ ! -e "${PAWPAW_PREFIX}/usr/include" ]; then + ln -s ../include "${PAWPAW_PREFIX}/usr/include" +fi +if [ ! -e "${PAWPAW_PREFIX}/usr/lib" ]; then + ln -s ../lib "${PAWPAW_PREFIX}/usr/lib" +fi +if [ ! -e "${PAWPAW_PREFIX}/usr/share" ]; then + ln -s ../share "${PAWPAW_PREFIX}/usr/share" +fi + +# --------------------------------------------------------------------------------------------------------------------- +# merged usr mode (host) + +mkdir -p "${PAWPAW_PREFIX}-host/bin" +mkdir -p "${PAWPAW_PREFIX}-host/usr" + +if [ ! -e "${PAWPAW_PREFIX}-host/usr/bin" ]; then + ln -s ../bin "${PAWPAW_PREFIX}-host/usr/bin" +fi + +# --------------------------------------------------------------------------------------------------------------------- +# GNU tools by default on macOS + +if [ "${MACOS}" -eq 1 ]; then + if ! command -v gawk >/dev/null; then + echo "missing 'gawk' program, cannot continue!" + exit 2 + elif [ ! -e "${PAWPAW_PREFIX}-host/bin/awk" ]; then + ln -s $(command -v gawk) "${PAWPAW_PREFIX}-host/bin/awk" + fi + + if ! command -v gcp >/dev/null; then + echo "missing 'gcp' program, cannot continue!" + exit 2 + elif [ ! -e "${PAWPAW_PREFIX}-host/bin/cp" ]; then + ln -s $(command -v gcp) "${PAWPAW_PREFIX}-host/bin/cp" + fi + + if ! command -v ginstall >/dev/null; then + echo "missing 'ginstall' program, cannot continue!" + exit 2 + elif [ ! -e "${PAWPAW_PREFIX}-host/bin/install" ]; then + ln -s $(command -v ginstall) "${PAWPAW_PREFIX}-host/bin/install" + fi + + if ! command -v glibtool >/dev/null; then + echo "missing 'glibtool' program, cannot continue!" + exit 2 + elif [ ! -e "${PAWPAW_PREFIX}-host/bin/libtool" ]; then + ln -s $(command -v glibtool) "${PAWPAW_PREFIX}-host/bin/libtool" + fi + + if ! command -v glibtoolize >/dev/null; then + echo "missing 'glibtoolize' program, cannot continue!" + exit 2 + elif [ ! -e "${PAWPAW_PREFIX}-host/bin/libtoolize" ]; then + ln -s $(command -v glibtoolize) "${PAWPAW_PREFIX}-host/bin/libtoolize" + fi + + if ! command -v gm4 >/dev/null; then + echo "missing 'curl' gm4, cannot continue!" + exit 2 + elif [ ! -e "${PAWPAW_PREFIX}-host/bin/m4" ]; then + ln -s $(command -v gm4) "${PAWPAW_PREFIX}-host/bin/m4" + fi + + if ! command -v gmake >/dev/null; then + echo "missing 'curl' gmake, cannot continue!" + exit 2 + elif [ ! -e "${PAWPAW_PREFIX}-host/bin/make" ]; then + ln -s $(command -v gmake) "${PAWPAW_PREFIX}-host/bin/make" + fi + + if ! command -v greadlink >/dev/null; then + echo "missing 'curl' greadlink, cannot continue!" + exit 2 + elif [ ! -e "${PAWPAW_PREFIX}-host/bin/readlink" ]; then + ln -s $(command -v greadlink) "${PAWPAW_PREFIX}-host/bin/readlink" + fi + + if ! command -v grealpath >/dev/null; then + echo "missing 'curl' grealpath, cannot continue!" + exit 2 + elif [ ! -e "${PAWPAW_PREFIX}-host/bin/realpath" ]; then + ln -s $(command -v grealpath) "${PAWPAW_PREFIX}-host/bin/realpath" + fi + + if ! command -v gsed >/dev/null; then + echo "missing 'curl' gsed, cannot continue!" + exit 2 + elif [ ! -e "${PAWPAW_PREFIX}-host/bin/sed" ]; then + ln -s $(command -v gsed) "${PAWPAW_PREFIX}-host/bin/sed" + fi +fi + +# --------------------------------------------------------------------------------------------------------------------- +# use some native libs for linux builds if [ "${LINUX}" -eq 1 ]; then mkdir -p ${TARGET_PKG_CONFIG_PATH} diff --git a/bootstrap-mod.sh b/bootstrap-mod.sh index d0aa52b..2707194 100755 --- a/bootstrap-mod.sh +++ b/bootstrap-mod.sh @@ -29,6 +29,7 @@ export PAWPAW_MODAUDIO=1 ./bootstrap-jack2.sh "${target}" ./bootstrap-plugins.sh "${target}" ./bootstrap-python.sh "${target}" +./bootstrap-qt.sh "${target}" # --------------------------------------------------------------------------------------------------------------------- # source setup code @@ -38,128 +39,6 @@ source setup/env.sh source setup/functions.sh source setup/versions.sh -# Use local Qt on Linux builds -if [ "${LINUX}" -eq 1 ]; then - if [ "${LINUX_TARGET}" = "linux-aarch64" ]; then - export PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig - elif [ "${LINUX_TARGET}" = "linux-armhf" ]; then - export PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig - elif [ "${LINUX_TARGET}" = "linux-i686" ]; then - export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig - elif [ "${LINUX_TARGET}" = "linux-riscv64" ]; then - export PKG_CONFIG_PATH=/usr/lib/riscv64-linux-gnu/pkgconfig - elif [ "${LINUX_TARGET}" = "linux-x86_64" ]; then - export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig - fi - if ! pkg-config --print-errors --exists Qt5Core Qt5Gui Qt5Svg Qt5Widgets; then - echo "Qt system libs are not available, cannot continue" - exit 2 - fi - if [ ! -e "${TARGET_PKG_CONFIG_PATH}/Qt5Core.pc" ]; then - cp $(pkg-config --variable=pcfiledir Qt5Core)/Qt5Core.pc ${TARGET_PKG_CONFIG_PATH}/ - sed -i '/Libs.private/d' ${TARGET_PKG_CONFIG_PATH}/Qt5Core.pc - fi - if [ ! -e "${TARGET_PKG_CONFIG_PATH}/Qt5Gui.pc" ]; then - cp $(pkg-config --variable=pcfiledir Qt5Gui)/Qt5Gui.pc ${TARGET_PKG_CONFIG_PATH}/ - sed -i '/Libs.private/d' ${TARGET_PKG_CONFIG_PATH}/Qt5Gui.pc - fi - if [ ! -e "${TARGET_PKG_CONFIG_PATH}/Qt5Svg.pc" ]; then - cp $(pkg-config --variable=pcfiledir Qt5Svg)/Qt5Svg.pc ${TARGET_PKG_CONFIG_PATH}/ - sed -i '/Libs.private/d' ${TARGET_PKG_CONFIG_PATH}/Qt5Svg.pc - fi - if [ ! -e "${TARGET_PKG_CONFIG_PATH}/Qt5Widgets.pc" ]; then - cp $(pkg-config --variable=pcfiledir Qt5Widgets)/Qt5Widgets.pc ${TARGET_PKG_CONFIG_PATH}/ - sed -i '/Libs.private/d' ${TARGET_PKG_CONFIG_PATH}/Qt5Widgets.pc - fi -else - ./bootstrap-qt.sh "${target}" -fi - -# --------------------------------------------------------------------------------------------------------------------- -# merged usr mode - -mkdir -p "${PAWPAW_PREFIX}/bin" -mkdir -p "${PAWPAW_PREFIX}/docs" -mkdir -p "${PAWPAW_PREFIX}/etc" -mkdir -p "${PAWPAW_PREFIX}/include" -mkdir -p "${PAWPAW_PREFIX}/lib" -mkdir -p "${PAWPAW_PREFIX}/share" -mkdir -p "${PAWPAW_PREFIX}/usr" - -if [ ! -e "${PAWPAW_PREFIX}/usr/bin" ]; then - ln -s ../bin "${PAWPAW_PREFIX}/usr/bin" -fi -if [ ! -e "${PAWPAW_PREFIX}/usr/docs" ]; then - ln -s ../docs "${PAWPAW_PREFIX}/usr/docs" -fi -if [ ! -e "${PAWPAW_PREFIX}/usr/etc" ]; then - ln -s ../etc "${PAWPAW_PREFIX}/usr/etc" -fi -if [ ! -e "${PAWPAW_PREFIX}/usr/include" ]; then - ln -s ../include "${PAWPAW_PREFIX}/usr/include" -fi -if [ ! -e "${PAWPAW_PREFIX}/usr/lib" ]; then - ln -s ../lib "${PAWPAW_PREFIX}/usr/lib" -fi -if [ ! -e "${PAWPAW_PREFIX}/usr/share" ]; then - ln -s ../share "${PAWPAW_PREFIX}/usr/share" -fi - -# --------------------------------------------------------------------------------------------------------------------- -# merged usr mode (host) - -mkdir -p "${PAWPAW_PREFIX}-host/bin" -mkdir -p "${PAWPAW_PREFIX}-host/usr" - -if [ ! -e "${PAWPAW_PREFIX}-host/usr/bin" ]; then - ln -s ../bin "${PAWPAW_PREFIX}-host/usr/bin" -fi - -# --------------------------------------------------------------------------------------------------------------------- -# GNU tools by default on macOS - -if [ "${MACOS}" -eq 1 ]; then - if [ ! -e "${PAWPAW_PREFIX}-host/bin/awk" ]; then - ln -s $(command -v gawk) "${PAWPAW_PREFIX}-host/bin/awk" - fi - - if [ ! -e "${PAWPAW_PREFIX}-host/bin/cp" ]; then - ln -s $(command -v gcp) "${PAWPAW_PREFIX}-host/bin/cp" - fi - - if [ ! -e "${PAWPAW_PREFIX}-host/bin/install" ]; then - ln -s $(command -v ginstall) "${PAWPAW_PREFIX}-host/bin/install" - fi - - if [ ! -e "${PAWPAW_PREFIX}-host/bin/libtool" ]; then - ln -s $(command -v glibtool) "${PAWPAW_PREFIX}-host/bin/libtool" - fi - - if [ ! -e "${PAWPAW_PREFIX}-host/bin/libtoolize" ]; then - ln -s $(command -v glibtoolize) "${PAWPAW_PREFIX}-host/bin/libtoolize" - fi - - if [ ! -e "${PAWPAW_PREFIX}-host/bin/m4" ]; then - ln -s $(command -v gm4) "${PAWPAW_PREFIX}-host/bin/m4" - fi - - if [ ! -e "${PAWPAW_PREFIX}-host/bin/make" ]; then - ln -s $(command -v gmake) "${PAWPAW_PREFIX}-host/bin/make" - fi - - if [ ! -e "${PAWPAW_PREFIX}-host/bin/readlink" ]; then - ln -s $(command -v greadlink) "${PAWPAW_PREFIX}-host/bin/readlink" - fi - - if [ ! -e "${PAWPAW_PREFIX}-host/bin/realpath" ]; then - ln -s $(command -v grealpath) "${PAWPAW_PREFIX}-host/bin/realpath" - fi - - if [ ! -e "${PAWPAW_PREFIX}-host/bin/sed" ]; then - ln -s $(command -v gsed) "${PAWPAW_PREFIX}-host/bin/sed" - fi -fi - # --------------------------------------------------------------------------------------------------------------------- # armadillo diff --git a/bootstrap-plugins.sh b/bootstrap-plugins.sh index a85bdaa..01ac2ee 100755 --- a/bootstrap-plugins.sh +++ b/bootstrap-plugins.sh @@ -575,6 +575,8 @@ build_autoconf mxml "${MXML_VERSION}" # --------------------------------------------------------------------------------------------------------------------- # carla (backend only) +if [ "${WASM}" -eq 0 ]; then + CARLA_EXTRAFLAGS="CAN_GENERATE_LV2_TTL=false" CARLA_EXTRAFLAGS+=" EXTERNAL_PLUGINS=false" CARLA_EXTRAFLAGS+=" HAVE_ALSA=false" @@ -602,6 +604,8 @@ CARLA_EXTRAFLAGS+=" USING_RTAUDIO=false" git_clone carla "${CARLA_VERSION}" "${CARLA_URL}" build_make carla "${CARLA_VERSION}" "${CARLA_EXTRAFLAGS}" +fi # WASM + # --------------------------------------------------------------------------------------------------------------------- # wine bootstrap (needed for cross-compilation) diff --git a/bootstrap-python.sh b/bootstrap-python.sh index c5c9baf..a991723 100755 --- a/bootstrap-python.sh +++ b/bootstrap-python.sh @@ -106,7 +106,7 @@ function build_conf_openssl() { # --------------------------------------------------------------------------------------------------------------------- # openssl -if [ -n "${PAWPAW_SKIP_OPENSSL}" ]; then +if [ -z "${PAWPAW_SKIP_OPENSSL}" ]; then OPENSSL_URL="https://www.openssl.org/source" OPENSSL_VERSION="1.1.1w" diff --git a/bootstrap-qt.sh b/bootstrap-qt.sh index 99ff2c7..caa4695 100755 --- a/bootstrap-qt.sh +++ b/bootstrap-qt.sh @@ -28,6 +28,44 @@ source setup/env.sh source setup/functions.sh source setup/versions.sh +# --------------------------------------------------------------------------------------------------------------------- +# Use local Qt on Linux builds + +if [ "${LINUX}" -eq 1 ]; then + if [ "${LINUX_TARGET}" = "linux-aarch64" ]; then + export PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig + elif [ "${LINUX_TARGET}" = "linux-armhf" ]; then + export PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig + elif [ "${LINUX_TARGET}" = "linux-i686" ]; then + export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig + elif [ "${LINUX_TARGET}" = "linux-riscv64" ]; then + export PKG_CONFIG_PATH=/usr/lib/riscv64-linux-gnu/pkgconfig + elif [ "${LINUX_TARGET}" = "linux-x86_64" ]; then + export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig + fi + if ! pkg-config --print-errors --exists Qt5Core Qt5Gui Qt5Svg Qt5Widgets; then + echo "Qt system libs are not available, cannot continue" + exit 2 + fi + if [ ! -e "${TARGET_PKG_CONFIG_PATH}/Qt5Core.pc" ]; then + cp $(pkg-config --variable=pcfiledir Qt5Core)/Qt5Core.pc ${TARGET_PKG_CONFIG_PATH}/ + sed -i '/Libs.private/d' ${TARGET_PKG_CONFIG_PATH}/Qt5Core.pc + fi + if [ ! -e "${TARGET_PKG_CONFIG_PATH}/Qt5Gui.pc" ]; then + cp $(pkg-config --variable=pcfiledir Qt5Gui)/Qt5Gui.pc ${TARGET_PKG_CONFIG_PATH}/ + sed -i '/Libs.private/d' ${TARGET_PKG_CONFIG_PATH}/Qt5Gui.pc + fi + if [ ! -e "${TARGET_PKG_CONFIG_PATH}/Qt5Svg.pc" ]; then + cp $(pkg-config --variable=pcfiledir Qt5Svg)/Qt5Svg.pc ${TARGET_PKG_CONFIG_PATH}/ + sed -i '/Libs.private/d' ${TARGET_PKG_CONFIG_PATH}/Qt5Svg.pc + fi + if [ ! -e "${TARGET_PKG_CONFIG_PATH}/Qt5Widgets.pc" ]; then + cp $(pkg-config --variable=pcfiledir Qt5Widgets)/Qt5Widgets.pc ${TARGET_PKG_CONFIG_PATH}/ + sed -i '/Libs.private/d' ${TARGET_PKG_CONFIG_PATH}/Qt5Widgets.pc + fi + exit 0 +fi + # --------------------------------------------------------------------------------------------------------------------- # qt package suffix changes depending on the version @@ -292,8 +330,7 @@ if [ "${MACOS_UNIVERSAL}" -eq 1 ]; then patch_file qtbase${qtsuffix} ${QT5_VERSION} "mkspecs/features/toolchain.prf" 's/-arch $$QMAKE_APPLE_DEVICE_ARCHS/-arch arm64/' elif [ "${MACOS}" -eq 1 ]; then patch_file qtbase${qtsuffix} ${QT5_VERSION} "mkspecs/macx-clang/qmake.conf" 's/10.10/10.8/' -fi -if [ "${WIN32}" -eq 1 ]; then +elif [ "${WIN32}" -eq 1 ]; then if [ "${QT5_MVERSION}" = "5.12" ]; then patch_file qtbase${qtsuffix} ${QT5_VERSION} "mkspecs/common/g++-win32.conf" 's/= -shared/= -static -shared/' patch_file qtbase${qtsuffix} ${QT5_VERSION} "mkspecs/win32-g++/qmake.conf" 's/= -fno-keep-inline-dllexport/= -Wno-deprecated-copy -Wno-deprecated-declarations -fno-keep-inline-dllexport/'