env:
  global:
    # Set at the root level as this is ignored when set under matrix.env.
    - GCC_VERSION="4.9"
    # Fail on first error if UBSAN or ASAN enabled for a target
    - UBSAN_OPTIONS=halt_on_error=1
    - ASAN_OPTIONS=halt_on_error=1
    # Travis machines have 2 cores
    - JOBS=2
    - MAKEFLAGS="-j 2"

conan-linux: &conan-linux
  os: linux
  dist: xenial
  language: python
  python: "3.7"
  services:
    - docker
  install:
    - ./conan/travis/install.sh
  script:
    - ./conan/travis/build.sh
  if: tag IS present

conan-linux-master: &conan-linux-master
  os: linux
  dist: xenial
  language: python
  python: "3.7"
  services:
    - docker
  install:
    - 'if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash ./conan/travis/install.sh; fi'
  script:
    - 'if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash ./conan/travis/build.sh; fi'
  branches:
    only:
    - master

conan-osx: &conan-osx
  os: osx
  language: generic
  install:
    - ./conan/travis/install.sh
  script:
    - ./conan/travis/build.sh
  if: tag IS present

matrix:
  include:
    #- language: python
    #  python: "2.7"
    #  install:
    #    - "pip install wheel twine"
    #  script:
    #    - "cd python/"
    #    - 'VERSION="$TRAVIS_TAG" python setup.py sdist bdist_wheel'
    #    - "cd ../"
    #  deploy:
    #    # Checkpointed release builds.
    #    - provider: script
    #      script: .travis/deploy-python.sh
    #      skip_cleanup: true
    #      on:
    #        tags: true
    #        # all_branches must be set with tags: true. See below post:
    #        # https://stackoverflow.com/a/27775257/1076585
    #        all_branches: true
    #    # Produce a new build for the cutting edge when master changes.
    #    - provider: script
    #      script: .travis/deploy-python.sh
    #      skip_cleanup: true
    #      on:
    #        branch: master
    - language: cpp
      os:
        - linux

      addons:
        apt:
          packages:
            - docker-ce
      script:
        - bash .travis/build-and-run-docker-test-containers.sh

    - language: cpp
      os:
        - linux

      compiler:
        - gcc

      env:
        matrix:
          - BUILD_TYPE=Debug
          - BUILD_TYPE=Release

      before_install:
      - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi
      - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get update -qq; fi
      - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -qq g++-$GCC_VERSION; fi
      - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -qq gcc-$GCC_VERSION; fi
      - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo ln -s -v -f $(which g++-$GCC_VERSION) /usr/bin/g++; fi
      - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo ln -s -v -f $(which gcc-$GCC_VERSION) /usr/bin/gcc; fi

      script:
      - pip install cmake
      - bash .travis/check-sources.sh
      - bash grpc/build_grpc.sh
      - cmake .
        -DCMAKE_BUILD_TYPE=$BUILD_TYPE
        -DFLATBUFFERS_BUILD_GRPCTEST=ON
        -DGRPC_INSTALL_PATH=$TRAVIS_BUILD_DIR/google/grpc/install
        -DPROTOBUF_DOWNLOAD_PATH=$TRAVIS_BUILD_DIR/google/grpc/third_party/protobuf
        -DFLATBUFFERS_CODE_SANITIZE=ON
      - cmake --build . --target all --clean-first -- -j${JOBS}
      - LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/google/grpc/install/lib ctest --extra-verbose --output-on-failure

    - language: cpp
      os: osx
      osx_image: xcode9.3
      env:
        matrix:
          - BUILD_TYPE=Debug
          - BUILD_TYPE=Release

      script:
      - pip install --user cmake
      - mkdir ~/cmake_path
      - ln -s $(find ~/Library/Python -name cmake -type f | head -n 1) ~/cmake_path/cmake
      - ln -s $(find ~/Library/Python -name ctest -type f | head -n 1) ~/cmake_path/ctest
      - export PATH=~/cmake_path:${PATH}
      - bash grpc/build_grpc.sh
      - cmake .
        -DCMAKE_BUILD_TYPE=$BUILD_TYPE
        -DFLATBUFFERS_BUILD_GRPCTEST=ON
        -DGRPC_INSTALL_PATH=$TRAVIS_BUILD_DIR/google/grpc/install
        -DPROTOBUF_DOWNLOAD_PATH=$TRAVIS_BUILD_DIR/google/grpc/third_party/protobuf
        -DFLATBUFFERS_CODE_SANITIZE=ON
      - cmake --build . -- -j${JOBS}
      - DYLD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/google/grpc/install/lib ctest --extra-verbose --output-on-failure

    - <<: *conan-linux-master
      env: CONAN_GCC_VERSIONS=8 CONAN_DOCKER_IMAGE=conanio/gcc8
    - <<: *conan-linux
      env: CONAN_GCC_VERSIONS=4.9 CONAN_DOCKER_IMAGE=conanio/gcc49
    - <<: *conan-linux
      env: CONAN_GCC_VERSIONS=5 CONAN_DOCKER_IMAGE=conanio/gcc5
    - <<: *conan-linux
      env: CONAN_GCC_VERSIONS=6 CONAN_DOCKER_IMAGE=conanio/gcc6
    - <<: *conan-linux
      env: CONAN_GCC_VERSIONS=7 CONAN_DOCKER_IMAGE=conanio/gcc7
    - <<: *conan-linux
      env: CONAN_GCC_VERSIONS=8 CONAN_DOCKER_IMAGE=conanio/gcc8
    - <<: *conan-linux
      env: CONAN_GCC_VERSIONS=9 CONAN_DOCKER_IMAGE=conanio/gcc9
    - <<: *conan-linux
      env: CONAN_CLANG_VERSIONS=3.9 CONAN_DOCKER_IMAGE=conanio/clang39
    - <<: *conan-linux
      env: CONAN_CLANG_VERSIONS=4.0 CONAN_DOCKER_IMAGE=conanio/clang40
    - <<: *conan-linux
      env: CONAN_CLANG_VERSIONS=5.0 CONAN_DOCKER_IMAGE=conanio/clang50
    - <<: *conan-linux
      env: CONAN_CLANG_VERSIONS=6.0 CONAN_DOCKER_IMAGE=conanio/clang60
    - <<: *conan-linux
      env: CONAN_CLANG_VERSIONS=7.0 CONAN_DOCKER_IMAGE=conanio/clang7
    - <<: *conan-linux
      env: CONAN_CLANG_VERSIONS=8 CONAN_DOCKER_IMAGE=conanio/clang8
    - <<: *conan-osx
      osx_image: xcode7.3
      env: CONAN_APPLE_CLANG_VERSIONS=7.3
    - <<: *conan-osx
      osx_image: xcode8.3
      env: CONAN_APPLE_CLANG_VERSIONS=8.1
    - <<: *conan-osx
      osx_image: xcode9
      env: CONAN_APPLE_CLANG_VERSIONS=9.0
    - <<: *conan-osx
      osx_image: xcode9.4
      env: CONAN_APPLE_CLANG_VERSIONS=9.1
    - <<: *conan-osx
      osx_image: xcode10.2
      env: CONAN_APPLE_CLANG_VERSIONS=10.0

    - language: android
      sudo: true
      dist: trusty
      android:
        components:
          - tools
          - platform-tools
          - extra-android-m2repository
        licenses:
          - 'android-sdk-preview-license-52d11cd2'
          - 'android-sdk-license-.+'
          - 'google-gdk-license-.+'
      compiler:
        - gcc
      before_install:
        - echo y | sdkmanager "platforms;android-30"
        - echo y | sdkmanager "build-tools;30.0.2"
        - echo y | sdkmanager "ndk-bundle"
        - echo y | sdkmanager "cmake;3.6.4111459"
      script:
        - cmake -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF .; make; export PATH="$PATH:${PWD}"
        - cd android; ./gradlew clean build

    - language: generic
      if: type IN (pull_request)
      os: linux
      install:
        - bash .travis/format_install.sh

      script:
        - bash .travis/format_check.sh
