Skip to content

Commit

Permalink
Cleanup cardinal bootstrap file
Browse files Browse the repository at this point in the history
Signed-off-by: falkTX <falktx@falktx.com>
  • Loading branch information
falkTX committed Sep 22, 2022
1 parent 9d8af58 commit 316b1c6
Show file tree
Hide file tree
Showing 5 changed files with 172 additions and 169 deletions.
270 changes: 143 additions & 127 deletions .github/workflows/bootstrap.yml
Expand Up @@ -161,133 +161,149 @@ jobs:
name: common-${{ matrix.target }}
path: common-${{ matrix.target }}.tar.gz

#cardinal:
#strategy:
#matrix:
#include:
#- name: linux
#installer: apt
#os: ubuntu-20.04
#target: linux
#- 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@v2
#- name: Set up cache
#uses: actions/cache@v2
#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
#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: 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 }}
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@v2
- name: Set up cache
uses: actions/cache@v2
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
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: 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:
Expand Down
35 changes: 6 additions & 29 deletions bootstrap-cardinal.sh
Expand Up @@ -22,36 +22,13 @@ export PAWPAW_SKIP_GLIB=1
export PAWPAW_SKIP_LV2=1
export PAWPAW_SKIP_SAMPLERATE=1

./bootstrap-common.sh "${target}"
./bootstrap-plugins.sh "${target}"

# nothing to do on wasm
if [ "${target}" = "wasm" ]; then
exit 0
# we just build the whole thing on Windows
if [ "${target}" != "win32" ] && [ "${target}" != "win64" ]; then
export PAWPAW_SKIP_QT=1
fi

# on Windows, we just build the whole thing
if [ "${target}" = "win32" ] || [ "${target}" = "win64" ]; then
./bootstrap-carla.sh "${target}"
exit 0
fi

# otherwise we build a very tiny set of dependencies

# ---------------------------------------------------------------------------------------------------------------------
# source setup code

source setup/check_target.sh
source setup/env.sh
source setup/functions.sh
source setup/versions.sh

# ---------------------------------------------------------------------------------------------------------------------
# file/magic (posix only)

if [ "${WIN32}" -eq 0 ]; then
download file "${FILE_VERSION}" "${FILE_URL}"
build_autoconf file "${FILE_VERSION}"
fi
./bootstrap-common.sh "${target}"
./bootstrap-plugins.sh "${target}"
./bootstrap-carla.sh "${target}"

# ---------------------------------------------------------------------------------------------------------------------
28 changes: 19 additions & 9 deletions bootstrap-carla.sh
Expand Up @@ -20,7 +20,10 @@ fi

./bootstrap-common.sh "${target}"
./bootstrap-plugins.sh "${target}"
./bootstrap-qt.sh "${target}"

if [ -z "${PAWPAW_SKIP_QT}" ]; then
./bootstrap-qt.sh "${target}"
fi

# ---------------------------------------------------------------------------------------------------------------------
# source setup code
Expand All @@ -30,6 +33,21 @@ source setup/env.sh
source setup/functions.sh
source setup/versions.sh

# ---------------------------------------------------------------------------------------------------------------------
# file/magic (posix only)

if [ "${WASM}" -eq 0 ] && [ "${WIN32}" -eq 0 ]; then
download file "${FILE_VERSION}" "${FILE_URL}"
build_autoconf file "${FILE_VERSION}"
fi

# ---------------------------------------------------------------------------------------------------------------------
# everything after this point requires Qt or PyQt

if [ -n "${PAWPAW_SKIP_QT}" ]; then
exit 0
fi

# ---------------------------------------------------------------------------------------------------------------------
# custom function as needed for pyqt packages

Expand Down Expand Up @@ -191,14 +209,6 @@ function build_pyqt() {
unset LINK
}

# ---------------------------------------------------------------------------------------------------------------------
# file/magic (posix only)

if [ "${WIN32}" -eq 0 ]; then
download file "${FILE_VERSION}" "${FILE_URL}"
build_autoconf file "${FILE_VERSION}"
fi

# ---------------------------------------------------------------------------------------------------------------------
# wine bootstrap for python (needed for cross-compilation)

Expand Down
4 changes: 2 additions & 2 deletions bootstrap-qt.sh
Expand Up @@ -132,7 +132,7 @@ function build_qt_conf() {
# base
qtbase_conf_args="-opensource -confirm-license"
qtbase_conf_args+=" -c++std"
if [ "${MACOS_UNIVERSAL}" -eq 1 ]; then
if [ "${LINUX}" -eq 1 ] || [ "${MACOS_UNIVERSAL}" -eq 1 ]; then
qtbase_conf_args+=" c++14"
else
qtbase_conf_args+=" c++11"
Expand Down Expand Up @@ -220,7 +220,7 @@ qtbase_conf_args+=" -pkg-config"
qtbase_conf_args+=" -force-pkg-config"

# platform specific
if [ "${CROSS_COMPILING}" -eq 1 ]; then
if [ -n "${TOOLCHAIN_PREFIX}" ]; then
if [ "${LINUX}" -eq 1 ]; then
qtbase_conf_args+=" -xplatform linux-g++"
elif [ "${MACOS}" -eq 1 ]; then
Expand Down

0 comments on commit 316b1c6

Please sign in to comment.