travis: fix osx make build
[mesa.git] / .travis.yml
1 language: c
2
3 dist: xenial
4
5 cache:
6 ccache: true
7
8 env:
9 global:
10 - PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
11
12 matrix:
13 include:
14 - env:
15 - LABEL="macOS make"
16 - BUILD=make
17 - MAKEFLAGS="-j4"
18 - MAKE_CHECK_COMMAND="make check"
19 - DRI_LOADERS="--with-platforms=x11 --disable-egl"
20 os: osx
21 - env:
22 - LABEL="macOS meson"
23 - BUILD=meson
24 - UNWIND="false"
25 - DRI_LOADERS="-Dglx=dri -Dgbm=false -Degl=false -Dplatforms=x11 -Dosmesa=none"
26 - GALLIUM_ST="-Ddri3=true -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
27 os: osx
28
29 before_install:
30 - |
31 if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
32 HOMEBREW_NO_AUTO_UPDATE=1 brew install python3 ninja expat gettext
33 # Set PATH for homebrew pip3 installs
34 PATH="$HOME/Library/Python/3.6/bin:${PATH}"
35 # Set PKG_CONFIG_PATH for keg-only expat
36 PKG_CONFIG_PATH="/usr/local/opt/expat/lib/pkgconfig:${PKG_CONFIG_PATH}"
37 # Set PATH for keg-only gettext
38 PATH="/usr/local/opt/gettext/bin:${PATH}"
39
40 # Install xquartz for prereqs ...
41 XQUARTZ_VERSION="2.7.11"
42 wget -nv https://dl.bintray.com/xquartz/downloads/XQuartz-${XQUARTZ_VERSION}.dmg
43 hdiutil attach XQuartz-${XQUARTZ_VERSION}.dmg
44 sudo installer -pkg /Volumes/XQuartz-${XQUARTZ_VERSION}/XQuartz.pkg -target /
45 hdiutil detach /Volumes/XQuartz-${XQUARTZ_VERSION}
46 # ... and set paths
47 PATH="/opt/X11/bin:${PATH}"
48 PKG_CONFIG_PATH="/opt/X11/share/pkgconfig:/opt/X11/lib/pkgconfig:${PKG_CONFIG_PATH}"
49 ACLOCAL="aclocal -I /opt/X11/share/aclocal -I /usr/local/share/aclocal"
50 fi
51
52 install:
53 # Install a more modern meson from pip, since the version in the
54 # ubuntu repos is often quite old.
55 - if test "x$BUILD" = xmeson; then
56 pip3 install --user meson;
57 pip3 install --user mako;
58 fi
59
60 # Install autotools build dependencies
61 - if test "x$BUILD" = xmake; then
62 pip2 install --user mako;
63 fi
64
65 # Install dependencies where we require specific versions (or where
66 # disallowed by Travis CI's package whitelisting).
67
68 script:
69 - if test "x$BUILD" = xmake; then
70 export CFLAGS="$CFLAGS -isystem`pwd`";
71
72 mkdir build &&
73 cd build &&
74 ../autogen.sh
75 --enable-autotools
76 --enable-debug
77 $LIBUNWIND_FLAGS
78 $DRI_LOADERS
79 --with-dri-drivers=$DRI_DRIVERS
80 $GALLIUM_ST
81 --with-gallium-drivers=$GALLIUM_DRIVERS
82 --with-vulkan-drivers=$VULKAN_DRIVERS
83 --disable-llvm-shared-libs
84 &&
85 make && eval $MAKE_CHECK_COMMAND;
86 fi
87
88 - |
89 if test "x$BUILD" = xmeson; then
90 if test -n "$LLVM_CONFIG"; then
91 # We need to control the version of llvm-config we're using, so we'll
92 # generate a native file to do so. This requires meson >=0.49
93 #
94 echo -e "[binaries]\nllvm-config = '`which $LLVM_CONFIG`'" > native.file
95
96 $LLVM_CONFIG --version
97 else
98 : > native.file
99 fi
100
101 export CFLAGS="$CFLAGS -isystem`pwd`"
102 meson _build \
103 --native-file=native.file \
104 -Dbuild-tests=true \
105 -Dlibunwind=${UNWIND} \
106 ${DRI_LOADERS} \
107 -Ddri-drivers=${DRI_DRIVERS:-[]} \
108 ${GALLIUM_ST} \
109 -Dgallium-drivers=${GALLIUM_DRIVERS:-[]} \
110 -Dvulkan-drivers=${VULKAN_DRIVERS:-[]}
111 meson configure _build
112 ninja -C _build
113 ninja -C _build test
114 fi