X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=.gitlab-ci%2Fdebian-install.sh;h=8a74b2877da5c391de4ad100be10fac2e8a0acb2;hb=28cc07a876d35d8d52120af6859fc7bbe270a9f2;hp=229a58f40f3b59ce0136ce54e8157675c76fb617;hpb=d00b1c45117564087a501167601d252e57aba39d;p=mesa.git diff --git a/.gitlab-ci/debian-install.sh b/.gitlab-ci/debian-install.sh index 229a58f40f3..8a74b2877da 100644 --- a/.gitlab-ci/debian-install.sh +++ b/.gitlab-ci/debian-install.sh @@ -5,77 +5,106 @@ 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 \ - curl \ + ca-certificates \ wget \ - gnupg \ - software-properties-common - -curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - -add-apt-repository "deb http://apt.llvm.org/stretch/ llvm-toolchain-stretch-7 main" + unzip -echo 'deb http://deb.debian.org/debian stretch-backports main' >/etc/apt/sources.list.d/backports.list +sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list +echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list apt-get update -apt-get install -y -t stretch-backports \ + +# Use newer packages from backports by default +cat >/etc/apt/preferences </usr/local/bin/x86_64-w64-mingw32-pkg-config <=0.49' -pip2 install 'scons>=2.4' - -pip2 install mako -pip3 install mako +pushd /usr/local +git clone https://gitlab.freedesktop.org/mesa/shader-db.git --depth 1 +rm -rf shader-db/.git +cd shader-db +make +popd # Use ccache to speed up builds -apt-get install -y ccache +apt-get install -y --no-remove ccache # We need xmllint to validate the XML files in Mesa -apt-get install -y libxml2-utils +apt-get install -y --no-remove libxml2-utils + + +# Generate cross build files for Meson +for arch in $CROSS_ARCHITECTURES; do + cross_file="/cross_file-$arch.txt" + /usr/share/meson/debcrossgen --arch "$arch" -o "$cross_file" + # Explicitly set ccache path for cross compilers + sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$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 + + +############### Build dEQP +git config --global user.email "mesa@example.com" +git config --global user.name "Mesa CI" +# XXX: Use --depth 1 once we can drop the cherry-picks. +git clone \ + https://github.com/KhronosGroup/VK-GL-CTS.git \ + -b opengl-es-cts-3.2.5.1 \ + /VK-GL-CTS +cd /VK-GL-CTS +# Fix surfaceless build +git cherry-pick -x 22f41e5e321c6dcd8569c4dad91bce89f06b3670 +git cherry-pick -x 1daa8dff73161ea60ead965bd6c9f2a0a2165648 + +# surfaceless links against libkms and such despite not using it. +sed -i '/gbm/d' targets/surfaceless/surfaceless.cmake +sed -i '/libkms/d' targets/surfaceless/surfaceless.cmake +sed -i '/libgbm/d' targets/surfaceless/surfaceless.cmake + +python3 external/fetch_sources.py + +mkdir -p /deqp +cd /deqp +cmake -G Ninja \ + -DDEQP_TARGET=surfaceless \ + -DCMAKE_BUILD_TYPE=Release \ + /VK-GL-CTS +ninja + +# Copy out the mustpass lists we want from a bunch of other junk. +mkdir /deqp/mustpass +for gles in gles2 gles3 gles31; do + cp \ + /deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.5.x/$gles-master.txt \ + /deqp/mustpass/$gles-master.txt +done + +# Remove the rest of the build products that we don't need. +rm -rf /deqp/external +rm -rf /deqp/modules/internal +rm -rf /deqp/executor +rm -rf /deqp/execserver +rm -rf /deqp/modules/egl +rm -rf /deqp/framework +du -sh * +rm -rf /VK-GL-CTS + +############### Uninstall the build software + +apt-get purge -y \ + wget \ + unzip \ + cmake \ + git \ + libgles2-mesa-dev \ + libgbm-dev + +apt-get autoremove -y --purge