language: cpp
dist: trusty
sudo: false

os: linux

git:
  depth: 1


env:
  global:
    - secure: |-
        a1eovNn4uol9won7ghr67eD3/59oeESN+G9bWE+ecI1V6yRseG9whniGhIpC/YfMW/Qz5I
        5sxSmFjaw9bxCISNwUIrL1O5x2AmRYTnFcXk4dFsUvlZg+WeF/aKyBYCNRM8C2ndbBmtAO
        o1F2EwFbiso0EmtzhAPs19ujiVxkLn4=

matrix:
  include:
      # Documentation
    - env: BUILD=Doc
      sudo: required
      # g++ 6 on Linux with C++14
    - env: COMPILER=g++-6 BUILD=Debug STANDARD=14
      compiler: gcc
      addons:
        apt:
          update: true
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - g++-6
    - env: COMPILER=g++-6 BUILD=Release STANDARD=14
      compiler: gcc
      addons:
        apt:
          update: true
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - g++-6
      # Apple clang on OS X with C++14
    - env: BUILD=Debug STANDARD=14
      compiler: clang
      os: osx
    - env: BUILD=Release STANDARD=14
      compiler: clang
      os: osx
      # clang 6.0 on Linux with C++14
    - env: COMPILER=clang++-6.0 BUILD=Debug STANDARD=14
      compiler: clang
      addons:
        apt:
          update: true
          packages:
            - clang-6.0
          sources:
            - ubuntu-toolchain-r-test
            - llvm-toolchain-trusty
            - llvm-toolchain-trusty-6.0
      # clang 4.0 on Linux with C++14
    - env: COMPILER=clang++-4.0 BUILD=Debug STANDARD=11
      compiler: clang
      addons:
        apt:
          update: true
          packages:
            - clang-4.0
          sources:
            - ubuntu-toolchain-r-test
            - llvm-toolchain-trusty
            - llvm-toolchain-trusty-4.0
      # g++ 4.8 on Linux with C++11
    - env: COMPILER=g++-4.8 BUILD=Debug STANDARD=11
      compiler: gcc
      # g++ 4.4 on Linux with C++11
    - env: COMPILER=g++-4.4 BUILD=Debug STANDARD=11
      compiler: gcc
      addons:
        apt:
          update: true
          packages:
            - g++-4.4
          sources:
            - ubuntu-toolchain-r-test
      # Android
    - language: android
      addons:
        apt:
          update: true
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - wget
            - unzip
            - tree
      android:
        components:
          - tools
          - platform-tools
          - android-21
      env:
        - ANDROID=true
      before_install:
        # Download/Install Gradle 
        - wget https://services.gradle.org/distributions/gradle-4.10.2-bin.zip
        - mkdir -p gradle
        - unzip -q -d ./gradle gradle-4.10.2-bin.zip
        - export GRADLE=gradle/gradle-4.10.2/bin/gradle
        - bash $GRADLE --version
      install:
        # Accept SDK Licenses + Install NDK
        - yes | sdkmanager --update > /dev/null 2>&1
        - sdkmanager ndk-bundle > /dev/null 2>&1
      before_script:
        - pushd ./support
      script:
        - bash ../$GRADLE clean assemble
      after_success:
        - popd;
        - tree ./libs

before_script:
  - if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then export CXX=${COMPILER}; fi
  - if [[ "${BUILD}" != "Doc" ]]; then ${CXX} --version; fi

script:
  - support/travis-build.py
