diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml index cb11fc2..f36409f 100644 --- a/.github/workflows/bootstrap.yml +++ b/.github/workflows/bootstrap.yml @@ -604,154 +604,154 @@ jobs: 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@v2 - #- name: Set up cache - #uses: actions/cache@v2 - #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 - #sudo apt-get install -yqq --allow-downgrades libgd3/jammy - #sudo apt-get purge -yqq libmono* moby* mono* msbuild* php* libgdiplus libpcre2-posix3 nuget - #- 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 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 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 - #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 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 - #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 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable - #fi - ## extra, for win64 - #if [ '${{ matrix.target }}' == 'win64' ]; then - #sudo apt-get update -qq - #sudo apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 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@v2 - #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@v2 - #with: - #name: qt-${{ matrix.target }} - #path: qt-${{ 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@v2 + - name: Set up cache + uses: actions/cache@v2 + 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 + sudo apt-get install -yqq --allow-downgrades libgd3/jammy + sudo apt-get purge -yqq libmono* moby* mono* msbuild* php* libgdiplus libpcre2-posix3 nuget + - 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 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 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 + 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 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 + 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 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable + fi + # extra, for win64 + if [ '${{ matrix.target }}' == 'win64' ]; then + sudo apt-get update -qq + sudo apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 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@v2 + 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@v2 + 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 + 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 @@ -760,122 +760,122 @@ jobs: #installer: apt #os: ubuntu-22.04 #target: win64 - #runs-on: ${{ matrix.os }} - #needs: [plugins, qt] - #steps: - #- uses: actions/checkout@v2 - #- name: Set up cache - #uses: actions/cache@v2 - #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 - #sudo apt-get install -yqq --allow-downgrades libgd3/jammy - #sudo apt-get purge -yqq libmono* moby* mono* msbuild* php* libgdiplus libpcre2-posix3 nuget - #- 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 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 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 - #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 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 - #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 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable - #fi - ## extra, for win64 - #if [ '${{ matrix.target }}' == 'win64' ]; then - #sudo apt-get update -qq - #sudo apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 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@v2 - #with: - #name: common-${{ matrix.target }} - #path: ~/PawPawBuilds - #- name: Download qt-${{ matrix.target }} - #uses: actions/download-artifact@v2 - #with: - #name: qt-${{ matrix.target }} - #path: ~/PawPawBuilds - #- name: Download plugins-${{ matrix.target }} - #uses: actions/download-artifact@v2 - #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 }} + runs-on: ${{ matrix.os }} + needs: [plugins, qt] + steps: + - uses: actions/checkout@v2 + - name: Set up cache + uses: actions/cache@v2 + 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 + sudo apt-get install -yqq --allow-downgrades libgd3/jammy + sudo apt-get purge -yqq libmono* moby* mono* msbuild* php* libgdiplus libpcre2-posix3 nuget + - 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 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 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 + 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 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 + 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 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable + fi + # extra, for win64 + if [ '${{ matrix.target }}' == 'win64' ]; then + sudo apt-get update -qq + sudo apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 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@v2 + with: + name: common-${{ matrix.target }} + path: ~/PawPawBuilds + - name: Download qt-${{ matrix.target }} + uses: actions/download-artifact@v2 + with: + name: qt-${{ matrix.target }} + path: ~/PawPawBuilds + - name: Download plugins-${{ matrix.target }} + uses: actions/download-artifact@v2 + 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 }} diff --git a/bootstrap-carla.sh b/bootstrap-carla.sh index 4347f44..6e26b5a 100755 --- a/bootstrap-carla.sh +++ b/bootstrap-carla.sh @@ -155,6 +155,10 @@ function build_pyqt() { local python="python$(echo ${PYTHON_VERSION} | cut -b 1,2,3)" + if [ -n "${PYTHON_FOR_BUILD}" ]; then + python="${PYTHON_FOR_BUILD}" + fi + # Place link to Qt DLLs for PyQt tests if [ "${WIN32}" -eq 1 ] && [ -d "pyuic" ] && [ ! -d "release" ]; then mkdir release @@ -206,7 +210,8 @@ function build_pyqt() { fi else if [ "${CROSS_COMPILING}" -eq 1 ]; then - sed -i -e "s|/usr|${PAWPAW_PREFIX}|g" "${PAWPAW_PREFIX}/lib/python3/dist-packages/sipconfig.py" + ln -sf "${PAWPAW_PREFIX}-host/bin/sip" "${PAWPAW_PREFIX}/bin/sip" + #sed -i -e "s|/usr|${PAWPAW_PREFIX}|g" "${PAWPAW_PREFIX}/lib/python3/dist-packages/sipconfig.py" fi fi touch .stamp_installed @@ -220,13 +225,23 @@ function build_pyqt() { # --------------------------------------------------------------------------------------------------------------------- # wine bootstrap for python (needed for cross-compilation) -if [ "${WIN32}" -eq 1 ] && [ -n "${EXE_WRAPPER}" ] && [ ! -d "${WINEPREFIX}" ]; then - wineboot -u -fi +# if [ "${WIN32}" -eq 1 ] && [ -n "${EXE_WRAPPER}" ] && [ ! -d "${WINEPREFIX}" ]; then +# wineboot -u +# fi # --------------------------------------------------------------------------------------------------------------------- # python +# build for host first +if [ "${CROSS_COMPILING}" -eq 1 ]; then + download host-Python "${PYTHON_VERSION}" "https://www.python.org/ftp/python/${PYTHON_VERSION}" "tgz" "" Python + build_host_autoconf host-Python "${PYTHON_VERSION}" "--build=$(gcc -dumpmachine) --prefix=${PAWPAW_PREFIX}-host" + export PYTHON_FOR_BUILD="${PAWPAW_PREFIX}-host/bin/python3" + # FIXME + mkdir -p "${PAWPAW_PREFIX}-host/lib/python3.8/config-3.8-x86_64-linux-gnu/Tools" + ln -sf "${PAWPAW_PREFIX}-host/bin" "${PAWPAW_PREFIX}-host/lib/python3.8/config-3.8-x86_64-linux-gnu/Tools/scripts" +fi + if [ "${MACOS_UNIVERSAL}" -eq 1 ]; then PYTHON_EXTRAFLAGS="--enable-optimizations" PYTHON_EXTRAFLAGS+=" ac_cv_lib_intl_textdomain=no" diff --git a/bootstrap-qt.sh b/bootstrap-qt.sh index 1849206..99ff2c7 100755 --- a/bootstrap-qt.sh +++ b/bootstrap-qt.sh @@ -296,7 +296,7 @@ fi if [ "${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-declarations -fno-keep-inline-dllexport/' + 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/' else patch_file qtbase${qtsuffix} ${QT5_VERSION} "mkspecs/win32-g++/qmake.conf" 's/= -shared/= -static -shared/' patch_file qtbase${qtsuffix} ${QT5_VERSION} "src/plugins/platforms/direct2d/direct2d.pro" 's/-lVersion/-lversion/' diff --git a/setup/check_target.sh b/setup/check_target.sh index df57216..0ae5ad1 100644 --- a/setup/check_target.sh +++ b/setup/check_target.sh @@ -33,19 +33,19 @@ function check_target() { "wasm") CLANG=1 CROSS_COMPILING=1 - EXE_WRAPPER="emrun --no_server" WASM=1 PAWPAW_SKIP_FORTIFY=1 PAWPAW_SKIP_LTO=1 + export EXE_WRAPPER="emrun --no_server" ;; "win32"|"MINGW32"*) GCC=1 WIN32=1 if [ "$(uname -o)" != "Msys" ] && [ "$(uname -o)" != "Cygwin" ]; then CROSS_COMPILING=1 - EXE_WRAPPER="wine" TOOLCHAIN_PREFIX="i686-w64-mingw32" TOOLCHAIN_PREFIX_="${TOOLCHAIN_PREFIX}-" + export EXE_WRAPPER="wine" fi ;; "win64"|"MINGW64"*) @@ -54,9 +54,9 @@ function check_target() { WIN64=1 if [ "$(uname -o)" != "Msys" ] && [ "$(uname -o)" != "Cygwin" ]; then CROSS_COMPILING=1 - EXE_WRAPPER="wine" TOOLCHAIN_PREFIX="x86_64-w64-mingw32" TOOLCHAIN_PREFIX_="${TOOLCHAIN_PREFIX}-" + export EXE_WRAPPER="wine" fi ;; "CYGWIN"*|"MSYS"*)