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
