Eric Anholt | 1c0ac19 | 2015-11-23 16:25:29 -0800 | [diff] [blame] | 1 | language: c |
| 2 | |
Emil Velikov | 7c38d7b | 2018-12-13 11:20:41 +0000 | [diff] [blame] | 3 | dist: xenial |
Eric Anholt | 1c0ac19 | 2015-11-23 16:25:29 -0800 | [diff] [blame] | 4 | |
| 5 | cache: |
Emil Velikov | 6431b98 | 2017-04-06 14:02:38 +0100 | [diff] [blame] | 6 | ccache: true |
Eric Anholt | 1c0ac19 | 2015-11-23 16:25:29 -0800 | [diff] [blame] | 7 | |
Eric Engestrom | 6e0effb | 2019-02-07 11:36:19 +0000 | [diff] [blame^] | 8 | env: |
| 9 | global: |
| 10 | - PKG_CONFIG_PATH="$PKG_CONFIG_PATH" |
| 11 | |
Emil Velikov | 56ba252 | 2017-04-06 14:38:40 +0100 | [diff] [blame] | 12 | matrix: |
| 13 | include: |
| 14 | - env: |
Jon Turney | b3a1d95 | 2018-01-18 13:05:06 +0000 | [diff] [blame] | 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 |
Jon Turney | b5af199 | 2018-01-16 17:51:53 +0000 | [diff] [blame] | 21 | - env: |
| 22 | - LABEL="macOS meson" |
| 23 | - BUILD=meson |
Emil Velikov | e890aaa | 2018-12-12 13:33:14 +0000 | [diff] [blame] | 24 | - UNWIND="false" |
Emil Velikov | 51318c3 | 2018-12-12 13:42:36 +0000 | [diff] [blame] | 25 | - DRI_LOADERS="-Dglx=dri -Dgbm=false -Degl=false -Dplatforms=x11 -Dosmesa=none" |
Emil Velikov | 39634f2 | 2018-12-12 13:52:20 +0000 | [diff] [blame] | 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" |
Jon Turney | b5af199 | 2018-01-16 17:51:53 +0000 | [diff] [blame] | 27 | os: osx |
Jon Turney | b3a1d95 | 2018-01-18 13:05:06 +0000 | [diff] [blame] | 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 |
Eric Anholt | 1c0ac19 | 2015-11-23 16:25:29 -0800 | [diff] [blame] | 51 | |
| 52 | install: |
Andres Gomez | 7255201 | 2018-03-05 17:25:36 +0200 | [diff] [blame] | 53 | # Install a more modern meson from pip, since the version in the |
Emil Velikov | 7c38d7b | 2018-12-13 11:20:41 +0000 | [diff] [blame] | 54 | # ubuntu repos is often quite old. |
Dylan Baker | df82012 | 2017-09-27 10:37:28 -0700 | [diff] [blame] | 55 | - if test "x$BUILD" = xmeson; then |
Eric Engestrom | 3824c8e | 2018-07-17 15:12:32 +0100 | [diff] [blame] | 56 | pip3 install --user meson; |
Eric Engestrom | f976d22 | 2018-08-13 12:10:38 +0100 | [diff] [blame] | 57 | pip3 install --user mako; |
| 58 | fi |
| 59 | |
| 60 | # Install autotools build dependencies |
| 61 | - if test "x$BUILD" = xmake; then |
Emil Velikov | 4428eed | 2018-10-31 21:54:49 +0000 | [diff] [blame] | 62 | pip2 install --user mako; |
Dylan Baker | df82012 | 2017-09-27 10:37:28 -0700 | [diff] [blame] | 63 | fi |
| 64 | |
Eric Anholt | 1c0ac19 | 2015-11-23 16:25:29 -0800 | [diff] [blame] | 65 | # Install dependencies where we require specific versions (or where |
| 66 | # disallowed by Travis CI's package whitelisting). |
| 67 | |
Eric Anholt | 1c0ac19 | 2015-11-23 16:25:29 -0800 | [diff] [blame] | 68 | script: |
Eric Anholt | 18f8da7 | 2015-12-01 11:57:49 -0800 | [diff] [blame] | 69 | - if test "x$BUILD" = xmake; then |
Eric Engestrom | d246aa3 | 2017-10-04 13:54:14 +0100 | [diff] [blame] | 70 | export CFLAGS="$CFLAGS -isystem`pwd`"; |
Emil Velikov | 7e2af37 | 2017-04-07 12:13:56 +0100 | [diff] [blame] | 71 | |
Eric Anholt | 3db39d84 | 2018-06-05 08:18:51 -0700 | [diff] [blame] | 72 | mkdir build && |
| 73 | cd build && |
Eric Engestrom | 41a0c00 | 2019-01-21 10:03:37 +0000 | [diff] [blame] | 74 | ../autogen.sh |
| 75 | --enable-autotools |
| 76 | --enable-debug |
Gert Wollny | 39fe51c | 2017-09-14 12:27:42 +0200 | [diff] [blame] | 77 | $LIBUNWIND_FLAGS |
Emil Velikov | 7e2af37 | 2017-04-07 12:13:56 +0100 | [diff] [blame] | 78 | $DRI_LOADERS |
Emil Velikov | 8479fd8 | 2017-04-06 18:01:19 +0100 | [diff] [blame] | 79 | --with-dri-drivers=$DRI_DRIVERS |
Emil Velikov | 0e6a36c | 2017-04-07 14:06:25 +0100 | [diff] [blame] | 80 | $GALLIUM_ST |
Emil Velikov | 8479fd8 | 2017-04-06 18:01:19 +0100 | [diff] [blame] | 81 | --with-gallium-drivers=$GALLIUM_DRIVERS |
| 82 | --with-vulkan-drivers=$VULKAN_DRIVERS |
Eric Anholt | 78ab62b | 2016-08-18 14:10:57 -0700 | [diff] [blame] | 83 | --disable-llvm-shared-libs |
Emil Velikov | 7e2af37 | 2017-04-07 12:13:56 +0100 | [diff] [blame] | 84 | && |
| 85 | make && eval $MAKE_CHECK_COMMAND; |
Emil Velikov | abcfea2 | 2017-04-06 14:23:36 +0100 | [diff] [blame] | 86 | fi |
| 87 | |
Andres Gomez | b5b912d | 2018-02-28 23:18:59 +0200 | [diff] [blame] | 88 | - | |
| 89 | if test "x$BUILD" = xmeson; then |
Eric Engestrom | e12b0b5 | 2019-01-02 12:28:48 +0000 | [diff] [blame] | 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 |
Andres Gomez | b5b912d | 2018-02-28 23:18:59 +0200 | [diff] [blame] | 95 | |
Eric Engestrom | e12b0b5 | 2019-01-02 12:28:48 +0000 | [diff] [blame] | 96 | $LLVM_CONFIG --version |
| 97 | else |
| 98 | : > native.file |
| 99 | fi |
Emil Velikov | 81173fd | 2018-12-13 10:38:20 +0000 | [diff] [blame] | 100 | |
Andres Gomez | b5b912d | 2018-02-28 23:18:59 +0200 | [diff] [blame] | 101 | export CFLAGS="$CFLAGS -isystem`pwd`" |
Emil Velikov | 51318c3 | 2018-12-12 13:42:36 +0000 | [diff] [blame] | 102 | meson _build \ |
Dylan Baker | 31c162a | 2018-12-11 10:34:51 -0800 | [diff] [blame] | 103 | --native-file=native.file \ |
Emil Velikov | 266ae22 | 2018-12-12 13:18:54 +0000 | [diff] [blame] | 104 | -Dbuild-tests=true \ |
Emil Velikov | e890aaa | 2018-12-12 13:33:14 +0000 | [diff] [blame] | 105 | -Dlibunwind=${UNWIND} \ |
Emil Velikov | 51318c3 | 2018-12-12 13:42:36 +0000 | [diff] [blame] | 106 | ${DRI_LOADERS} \ |
Emil Velikov | 266ae22 | 2018-12-12 13:18:54 +0000 | [diff] [blame] | 107 | -Ddri-drivers=${DRI_DRIVERS:-[]} \ |
Emil Velikov | 39634f2 | 2018-12-12 13:52:20 +0000 | [diff] [blame] | 108 | ${GALLIUM_ST} \ |
Emil Velikov | 266ae22 | 2018-12-12 13:18:54 +0000 | [diff] [blame] | 109 | -Dgallium-drivers=${GALLIUM_DRIVERS:-[]} \ |
| 110 | -Dvulkan-drivers=${VULKAN_DRIVERS:-[]} |
Emil Velikov | de72c1f | 2018-12-12 17:43:07 +0000 | [diff] [blame] | 111 | meson configure _build |
Andres Gomez | b5b912d | 2018-02-28 23:18:59 +0200 | [diff] [blame] | 112 | ninja -C _build |
Dylan Baker | 31c162a | 2018-12-11 10:34:51 -0800 | [diff] [blame] | 113 | ninja -C _build test |
Dylan Baker | df82012 | 2017-09-27 10:37:28 -0700 | [diff] [blame] | 114 | fi |