language: c

os: osx

cache:
  ccache: true

env:
  global:
    - PKG_CONFIG_PATH=""

matrix:
  include:
    - env:
      - BUILD=meson
    - env:
      - BUILD=scons

before_install:
  - HOMEBREW_NO_AUTO_UPDATE=1 brew install expat gettext
  - if test "x$BUILD" = xmeson; then
      HOMEBREW_NO_AUTO_UPDATE=1 brew install python3 ninja;
    fi
  - if test "x$BUILD" = xscons; then
      HOMEBREW_NO_AUTO_UPDATE=1 brew install python2 scons;
    fi

  # Set PATH for homebrew pip3 installs
  - PATH="$HOME/Library/Python/3.6/bin:${PATH}"
  # Set PKG_CONFIG_PATH for keg-only expat
  - PKG_CONFIG_PATH="/usr/local/opt/expat/lib/pkgconfig:${PKG_CONFIG_PATH}"
  # Set PATH for keg-only gettext
  - PATH="/usr/local/opt/gettext/bin:${PATH}"

  # Install xquartz for prereqs ...
  - XQUARTZ_VERSION="2.7.11"
  - wget -nv https://dl.bintray.com/xquartz/downloads/XQuartz-${XQUARTZ_VERSION}.dmg
  - hdiutil attach XQuartz-${XQUARTZ_VERSION}.dmg
  - sudo installer -pkg /Volumes/XQuartz-${XQUARTZ_VERSION}/XQuartz.pkg -target /
  - hdiutil detach /Volumes/XQuartz-${XQUARTZ_VERSION}
  # ... and set paths
  - PKG_CONFIG_PATH="/opt/X11/share/pkgconfig:/opt/X11/lib/pkgconfig:${PKG_CONFIG_PATH}"

install:
  - if test "x$BUILD" = xmeson; then
      pip3 install --user meson;
      pip3 install --user mako;
    fi
  - if test "x$BUILD" = xscons; then
      pip2 install --user mako;
    fi

script:
  - if test "x$BUILD" = xmeson; then
      meson _build -Dbuild-tests=true;
      ninja -C _build || travis_terminate 1;
      ninja -C _build test || travis_terminate 1;
    fi
  - if test "x$BUILD" = xscons; then
      scons || travis_terminate 1;
      scons check || travis_terminate 1;
    fi
