diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a81833d5698..e5ae08ce777 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/mesa - DEBIAN_TAG: "2019-07-04" + DEBIAN_TAG: "2019-07-11" DEBIAN_VERSION: stretch-slim DEBIAN_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG" @@ -227,6 +227,71 @@ meson-vulkan: EXTRA_OPTION: > -D vulkan-overlay-layer=true +.meson-cross: + extends: .meson-build + variables: + UNWIND: "false" + DRI_LOADERS: > + -D glx=disabled + -D gbm=false + -D egl=false + -D platforms=surfaceless + -D osmesa=none + GALLIUM_ST: > + -D dri3=false + -D gallium-vdpau=false + -D gallium-xvmc=false + -D gallium-omx=disabled + -D gallium-va=false + -D gallium-xa=false + -D gallium-nine=false + -D llvm=false + CROSS: > + --libdir lib + --cross /tmp/cross_file.txt + + script: + - /usr/share/meson/debcrossgen --arch ${ARCH} -o /tmp/cross_file.txt + # Work around a bug in debcrossgen that should be fixed in the next release + - sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" /tmp/cross_file.txt + - .gitlab-ci/meson-build.sh + +meson-armhf: + extends: .meson-cross + variables: + ARCH: armhf + VULKAN_DRIVERS: freedreno + GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,tegra,v3d,vc4" + # Disable the tests since we're cross compiling. + EXTRA_OPTION: > + -D build-tests=false + -D I-love-half-baked-turnips=true + -D vulkan-overlay-layer=true + +meson-arm64: + extends: .meson-cross + variables: + ARCH: arm64 + VULKAN_DRIVERS: freedreno + GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,tegra,v3d,vc4" + # Disable the tests since we're cross compiling. + EXTRA_OPTION: > + -D build-tests=false + -D I-love-half-baked-turnips=true + -D vulkan-overlay-layer=true + +meson-i386: + extends: .meson-cross + variables: + ARCH: i386 + VULKAN_DRIVERS: intel + GALLIUM_DRIVERS: "swrast" + # Disable i386 tests, because u_format_tests gets precision + # failures in dxtn unpacking + EXTRA_OPTION: > + -D build-tests=false + -D vulkan-overlay-layer=true + scons-nollvm: extends: .scons-build variables: diff --git a/.gitlab-ci/debian-install.sh b/.gitlab-ci/debian-install.sh index 1e4d3283be0..64f970fa81f 100644 --- a/.gitlab-ci/debian-install.sh +++ b/.gitlab-ci/debian-install.sh @@ -5,6 +5,11 @@ set -o xtrace export DEBIAN_FRONTEND=noninteractive +CROSS_ARCHITECTURES="armhf arm64 i386" +for arch in $CROSS_ARCHITECTURES; do + dpkg --add-architecture $arch +done + apt-get install -y \ apt-transport-https \ ca-certificates \ @@ -75,6 +80,22 @@ apt-get install -y \ gettext \ make +# Cross-build Mesa deps +for arch in $CROSS_ARCHITECTURES; do + apt-get install -y \ + libdrm-dev:${arch} \ + libexpat1-dev:${arch} \ + libelf-dev:${arch} +done +apt-get install -y \ + dpkg-dev \ + gcc-aarch64-linux-gnu \ + g++-aarch64-linux-gnu \ + gcc-arm-linux-gnueabihf \ + g++-arm-linux-gnueabihf \ + gcc-i686-linux-gnu \ + g++-i686-linux-gnu + # for 64bit windows cross-builds apt-get install -y mingw-w64 @@ -185,7 +206,6 @@ apt-get install -y libxml2-utils apt-get purge -y \ automake \ libtool \ - make \ curl \ unzip \ wget \ diff --git a/.gitlab-ci/meson-build.sh b/.gitlab-ci/meson-build.sh index ed188e34d98..2bf51de1cd6 100755 --- a/.gitlab-ci/meson-build.sh +++ b/.gitlab-ci/meson-build.sh @@ -16,6 +16,7 @@ fi rm -rf _build meson _build --native-file=native.file \ + ${CROSS} \ -D buildtype=debug \ -D build-tests=true \ -D libunwind=${UNWIND} \