sudo: false

branches:
  only:
  - master
  # Release branches
  - /^[0-9]+\.[0-9]+$/

os:
  - linux
  - osx

compiler:
  - gcc
  - clang

env:
  - MESON_ARGS=""
  - MESON_ARGS="--unity=on"

language:
  - cpp

services:
  - docker

matrix:
  exclude:
  # On OS X gcc is just a wrapper around clang, so don't waste time testing that
  - os: osx
    compiler: gcc
  include:
  # Test cross builds separately, they do not use the global compiler
  - os: linux
    compiler: gcc
    env: RUN_TESTS_ARGS="--cross=arm"
  - os: linux
    compiler: gcc
    env: RUN_TESTS_ARGS="--cross=arm" MESON_ARGS="--unity=on"
  - os: linux
    compiler: gcc
    env: RUN_TESTS_ARGS="--cross=mingw"
  - os: linux
    compiler: gcc
    env: RUN_TESTS_ARGS="--cross=mingw" MESON_ARGS="--unity=on"

before_install:
  - python ./skip_ci.py --base-branch-env=TRAVIS_BRANCH --is-pull-env=TRAVIS_PULL_REQUEST
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew uninstall python mercurial; fi
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install python@2 python@3 mercurial qt; fi
  # Use a Ninja with QuLogic's patch: https://github.com/ninja-build/ninja/issues/1219
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then mkdir -p $HOME/tools; curl -L http://nirbheek.in/files/binaries/ninja/macos/ninja -o $HOME/tools/ninja; chmod +x $HOME/tools/ninja; fi
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker pull jpakkane/mesonci:bionic; fi

# We need to copy the current checkout inside the Docker container,
# because it has the MR id to be tested checked out.

script:
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then echo FROM jpakkane/mesonci:bionic > Dockerfile; fi
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then echo ADD . /root >> Dockerfile; fi
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker build -t withgit .; fi
  - |
    if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
      ci_env=`bash <(curl -s https://codecov.io/env)`
      docker run $ci_env -v ${PWD}/.coverage:/root/.coverage \
        withgit \
          /bin/sh -c "cd /root && mkdir -p tools; wget -c http://nirbheek.in/files/binaries/ninja/linux-amd64/ninja -O /root/tools/ninja; chmod +x /root/tools/ninja; CC=$CC CXX=$CXX OBJC=$CC OBJCXX=$CXX PATH=/root/tools:$PATH MESON_FIXED_NINJA=1 ./run_tests.py $RUN_TESTS_ARGS -- $MESON_ARGS && chmod -R a+rwX .coverage"
    fi
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then SDKROOT=$(xcodebuild -version -sdk macosx Path) CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib OBJC=$CC OBJCXX=$CXX PATH=$HOME/tools:/usr/local/opt/qt/bin:$PATH MESON_FIXED_NINJA=1 ./run_tests.py --backend=ninja -- $MESON_ARGS ; fi
