mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
ci: cross compile on debian 13 to multiple architectures
Debian supports many architectures, and it is relatively easy to work with multiarch packages, and finally `meson env2mfile` supports generating cross files with the `--debarch` option. Previously only native builds were done in the CI, so use debian to build pipewire for multiple architectures. Some packages are unfortunately not multiarch compatible, so a separate container is built for every architecture.
This commit is contained in:
parent
9438df8d30
commit
0fcabdbd0c
2 changed files with 140 additions and 0 deletions
63
.gitlab/ci/setup-debian-cross-container.sh
Executable file
63
.gitlab/ci/setup-debian-cross-container.sh
Executable file
|
|
@ -0,0 +1,63 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
packages=(
|
||||
# libapparmor-dev
|
||||
libasound2-dev
|
||||
libavahi-client-dev
|
||||
libavcodec-dev
|
||||
libavfilter-dev
|
||||
libavformat-dev
|
||||
libbluetooth-dev
|
||||
libcanberra-dev
|
||||
libdbus-1-dev
|
||||
libebur128-dev
|
||||
libfdk-aac-dev
|
||||
libffado-dev
|
||||
libfftw3-dev
|
||||
libfreeaptx-dev
|
||||
libglib2.0-dev
|
||||
libgstreamer1.0-dev
|
||||
libgstreamer-plugins-base1.0-dev
|
||||
libjack-jackd2-dev
|
||||
liblc3-dev
|
||||
liblilv-dev
|
||||
libmysofa-dev
|
||||
libopus-dev
|
||||
libpulse-dev
|
||||
libreadline-dev
|
||||
libsbc-dev
|
||||
libsdl2-dev
|
||||
# libsnapd-glib-dev
|
||||
libsndfile1-dev
|
||||
libspandsp-dev
|
||||
libssl-dev
|
||||
libsystemd-dev
|
||||
libudev-dev
|
||||
libusb-1.0-0-dev
|
||||
libvulkan-dev
|
||||
libwebrtc-audio-processing-dev
|
||||
libx11-dev
|
||||
modemmanager-dev
|
||||
)
|
||||
|
||||
arch="$1"
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
sed -i \
|
||||
's/^Components:.*$/Components: main contrib non-free non-free-firmware/' \
|
||||
/etc/apt/sources.list.d/debian.sources
|
||||
|
||||
dpkg --add-architecture "$arch"
|
||||
apt update -y
|
||||
|
||||
pkgs=( "crossbuild-essential-$arch" )
|
||||
for pkg in "${packages[@]}"; do
|
||||
pkgs+=( "$pkg:$arch" )
|
||||
done
|
||||
|
||||
apt install -y "${pkgs[@]}"
|
||||
|
||||
meson env2mfile --cross --debarch "$arch" -o "/opt/meson-$arch.cross"
|
||||
Loading…
Add table
Add a link
Reference in a new issue