From f0e22a76c93c98d67dbd5c966812b2901de5ed49 Mon Sep 17 00:00:00 2001
From: Jon Turney <jon.turney@dronecode.org.uk>
Date: Fri, 19 Apr 2019 15:37:22 +0100
Subject: [PATCH] travis: Add OSX meson build to matrix

Unfortunately, a 'brew update' is currently needed to get the meson >=
0.46.0 required by xserver.
---
 .travis.yml                      | 21 +++++++++++++++------
 test/scripts/build-travis-osx.sh | 31 +++++++++++++++++++++++--------
 2 files changed, 38 insertions(+), 14 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 15677891b6..654ab5ba59 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,18 +1,27 @@
 language: c
-cache: ccache
+cache:
+    ccache: true
+    directories:
+        - $HOME/Library/Caches/Homebrew
 branches:
     except:
         - /appveyor.*/
 
+os: osx
+osx_image: xcode9.2
+
 matrix:
   include:
-    - os: osx
-      osx_image: xcode9.2
-      env: DISTRO=xcode9.2
+    - env: TOOL=meson
+    - env: TOOL=autotools
 
 install:
-    - HOMEBREW_NO_AUTO_UPDATE=1 brew install ccache
+    - brew update
+    - HOMEBREW_NO_AUTO_UPDATE=1 brew install ccache meson
 
 script:
-    - ./test/scripts/build-travis-osx.sh
+    - ./test/scripts/build-travis-osx.sh $TOOL
     - ccache -s
+
+before_cache:
+    - brew cleanup
diff --git a/test/scripts/build-travis-osx.sh b/test/scripts/build-travis-osx.sh
index 193a8851d5..800fafcb2b 100755
--- a/test/scripts/build-travis-osx.sh
+++ b/test/scripts/build-travis-osx.sh
@@ -30,14 +30,29 @@ export PATH="/usr/local/opt/ccache/libexec:$PATH"
 pushd $HOME
 git clone git://anongit.freedesktop.org/git/xorg/proto/xorgproto
 cd xorgproto
-autoreconf -fvi
-./configure --prefix=/opt/X11
-sudo make install
+if [[ "$1" == "autotools" ]]; then
+    autoreconf -fvi
+    ./configure --prefix=/opt/X11
+    sudo make install
+elif [[ "$1" == "meson" ]]; then
+    meson _build/ -Dprefix=/opt/X11
+    ninja -C _build/
+    sudo ninja -C _build/ install
+else
+    echo "Unknown build tool $1"
+    exit 1
+fi
 popd
 
 # build
-autoreconf -fvi
-./configure --prefix=/opt/X11 --disable-dependency-tracking --with-apple-application-name=XQuartz --with-bundle-id-prefix=org.macosforge.xquartz
-make
-make check
-make install DESTDIR=$(pwd)/staging
+if [[ "$1" == "autotools" ]]; then
+    autoreconf -fvi
+    ./configure --prefix=/opt/X11 --disable-dependency-tracking --with-apple-application-name=XQuartz --with-bundle-id-prefix=org.macosforge.xquartz
+    make
+    make check
+    make install DESTDIR=$(pwd)/staging
+elif [[ "$1" == "meson" ]]; then
+    meson _build/ -Dprefix=/opt/X11 -Dsecure-rpc=false
+    DESTDIR=$(pwd)/staging ninja -C _build/ install
+    ninja -C _build/ test
+fi
-- 
GitLab