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 ninja;
    fi
  - if test "x$BUILD" = xscons; then
      HOMEBREW_NO_AUTO_UPDATE=1 brew install 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;
      ninja -C _build install || travis_terminate 1;
    fi
  - if test "x$BUILD" = xscons; then
      scons force_scons=1 || travis_terminate 1;
      scons force_scons=1 check || travis_terminate 1;
    fi