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
    - name: Android NDK (Gradle)
      language: android
      addons:
        apt:
          update: true
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - ninja-build
            - curl
            - tree
      android:
        components:
          - tools
          - platform-tools
          - android-25 # 7.0
          - android-27 # 8.1
          - android-28 # 9.0
          - build-tools-28.0.3
      before_install:
        # Install Gradle from https://sdkman.io/
        - curl -s "https://get.sdkman.io" | bash > /dev/null
        - source "$HOME/.sdkman/bin/sdkman-init.sh"
        - sdk version
        - sdk install gradle
        - sdk use gradle
        - 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:
        - gradle clean
        - gradle 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
