egl: fix _eglMatchDriver() return type
[mesa.git] / .gitlab-ci / meson-build.sh
1 #!/bin/bash
2
3 set -e
4 set -o xtrace
5
6 CROSS_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.
10 if 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
17 else
18 rm -f native.file
19 touch native.file
20 fi
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).
33 if [ -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
41 fi
42
43 rm -rf _build
44 meson _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}
58 cd _build
59 meson configure
60 ninja
61 LC_ALL=C.UTF-8 ninja test
62 ninja install
63 cd ..