diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 765a18d6..6761c459 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,7 +14,7 @@ # repository's registry will be used there as well. variables: UPSTREAM_REPO: mesa/drm - DEBIAN_TAG: "2019-10-20" + DEBIAN_TAG: "2019-11-12" DEBIAN_VERSION: buster-slim DEBIAN_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG" @@ -71,9 +71,10 @@ debian: -D radeon=true -D tegra=true -D udev=true - -D valgrind=true + -D valgrind=auto -D vc4=true -D vmwgfx=true + ${CROSS+--cross /cross_file-$CROSS.txt} - ninja -C _build - ninja -C _build test - DESTDIR=$PWD/install ninja -C _build install diff --git a/.gitlab-ci/debian-install.sh b/.gitlab-ci/debian-install.sh index 05b63a15..6b779e64 100644 --- a/.gitlab-ci/debian-install.sh +++ b/.gitlab-ci/debian-install.sh @@ -4,6 +4,11 @@ set -o xtrace export DEBIAN_FRONTEND=noninteractive +CROSS_ARCHITECTURES=(i386 armhf arm64) +for arch in ${CROSS_ARCHITECTURES[@]}; do + dpkg --add-architecture $arch +done + apt-get install -y \ ca-certificates @@ -29,6 +34,7 @@ apt-get install -y --no-remove \ libcunit1-dev \ libpciaccess-dev \ libxslt1-dev \ + meson \ ninja-build \ pkg-config \ python3 \ @@ -38,6 +44,24 @@ apt-get install -y --no-remove \ valgrind \ xsltproc +for arch in ${CROSS_ARCHITECTURES[@]}; do + cross_file=/cross_file-$arch.txt + + # Cross-build libdrm deps + apt-get install -y --no-remove \ + libcairo2-dev:$arch \ + libpciaccess-dev:$arch \ + crossbuild-essential-$arch + + # Generate cross build files for Meson + /usr/share/meson/debcrossgen --arch $arch -o $cross_file + + # Work around a bug in debcrossgen that should be fixed in the next release + if [ $arch = i386 ]; then + sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" $cross_file + fi +done + # Test that the oldest Meson version we claim to support is still supported pip3 install meson==0.43