1#!/bin/bash 2 3set -e 4set -o xtrace 5 6CROSS_FILE=/cross_file-"$CROSS".txt 7 8# We need to control the version of llvm-config we're using, so we'll 9# tweak the cross file or generate a native file to do so. 10if test -n "$LLVM_VERSION"; then 11 LLVM_CONFIG="llvm-config-${LLVM_VERSION}" 12 echo -e "[binaries]\nllvm-config = '`which $LLVM_CONFIG`'" > native.file 13 if [ -n "$CROSS" ]; then 14 sed -i -e '/\[binaries\]/a\' -e "llvm-config = '`which $LLVM_CONFIG`'" $CROSS_FILE 15 fi 16 $LLVM_CONFIG --version 17else 18 rm -f native.file 19 touch native.file 20fi 21 22# cross-xfail-$CROSS, if it exists, contains a list of tests that are expected 23# to fail for the $CROSS configuration, one per line. you can then mark those 24# tests in their meson.build with: 25# 26# test(..., 27# should_fail: meson.get_cross_property('xfail', '').contains(t), 28# ) 29# 30# where t is the name of the test, and the '' is the string to search when 31# not cross-compiling (which is empty, because for amd64 everything is 32# expected to pass). 33if [ -n "$CROSS" ]; then 34 CROSS_XFAIL=.gitlab-ci/cross-xfail-"$CROSS" 35 if [ -s "$CROSS_XFAIL" ]; then 36 sed -i \ 37 -e '/\[properties\]/a\' \ 38 -e "xfail = '$(tr '\n' , < $CROSS_XFAIL)'" \ 39 "$CROSS_FILE" 40 fi 41fi 42 43rm -rf _build 44meson _build --native-file=native.file \ 45 --wrap-mode=nofallback \ 46 ${CROSS+--cross "$CROSS_FILE"} \ 47 -D prefix=`pwd`/install \ 48 -D libdir=lib \ 49 -D buildtype=${BUILDTYPE:-debug} \ 50 -D build-tests=true \ 51 -D libunwind=${UNWIND} \ 52 ${DRI_LOADERS} \ 53 -D dri-drivers=${DRI_DRIVERS:-[]} \ 54 ${GALLIUM_ST} \ 55 -D gallium-drivers=${GALLIUM_DRIVERS:-[]} \ 56 -D vulkan-drivers=${VULKAN_DRIVERS:-[]} \ 57 ${EXTRA_OPTION} 58cd _build 59meson configure 60ninja 61LC_ALL=C.UTF-8 ninja test 62ninja install 63cd .. 64