sudo: false
language: c++

notifications:
  email:
    on_success: change
    on_failure: always
  # gitter
  webhooks:
    urls: https://webhooks.gitter.im/e/10941dd1c67e5e967706
    on_success: change
    on_failure: always
git:
  depth: 5

# check out the ccache setup/teardown of Urho3D - https://github.com/urho3d/Urho3D/blob/master/.travis.yml
cache:
  - apt
  - ccache

env:
  global:
    - USE_CCACHE=1
    - CCACHE_SLOPPINESS=pch_defines,time_macros
    - CCACHE_COMPRESS=1
    - CCACHE_MAXSIZE=200M
    - CCACHE_CPP2=1
    - CMAKE_OPTIONS_GLOBAL="-DCMAKE_EXPORT_COMPILE_COMMANDS=ON"
  # Workaround for https://github.com/travis-ci/travis-ci/issues/4681
  # "Defining the build matrix only with matrix.include leads to an additional, unwanted job"
  matrix:
    - TRAVIS_EMPTY_JOB_WORKAROUND=true

# these apt sources will be referenced later (by using *name)
addons:
  apt:
    sources: &apt_sources
      - ubuntu-toolchain-r-test
      - llvm-toolchain-precise-3.5
      - llvm-toolchain-precise-3.6
      - llvm-toolchain-precise-3.7
      - llvm-toolchain-precise-3.8
      - llvm-toolchain-precise

compiler: clang
os: linux

matrix:
  exclude:
    - env: TRAVIS_EMPTY_JOB_WORKAROUND=true

  include:
    # coverage
    - env: COMPILER=g++ COVERALLS_SERVICE_NAME=travis-ci
      compiler: gcc
      addons:
        apt:
          packages: ["lcov", "curl"]

    # GCC 4.4
    - env: COMPILER=g++-4.4
      compiler: gcc
      addons: &gcc44
        apt:
          packages: ["g++-4.4", "valgrind", "g++-4.4-multilib", "libc6-dbg", "libc6-dbg:i386"]
          sources: *apt_sources

    # GCC 4.5
    - env: COMPILER=g++-4.5
      compiler: gcc
      addons: &gcc45
        apt:
          packages: ["g++-4.5", "valgrind", "g++-4.5-multilib", "libc6-dbg", "libc6-dbg:i386"]
          sources: *apt_sources

    # GCC 4.6
    - env: COMPILER=g++-4.6
      compiler: gcc
      addons: &gcc46
        apt:
          packages: [           "valgrind", "g++-4.6-multilib", "libc6-dbg", "libc6-dbg:i386"]
          sources: *apt_sources

    # GCC 4.7
    - env: COMPILER=g++-4.7
      compiler: gcc
      addons: &gcc47
        apt:
          packages: ["g++-4.7", "valgrind", "g++-4.7-multilib", "libc6-dbg", "libc6-dbg:i386"]
          sources: *apt_sources

    # GCC 4.8
    - env: COMPILER=g++-4.8 HAS_ASAN_32=true HAS_ASAN_64=true
      compiler: gcc
      addons: &gcc48
        apt:
          packages: ["g++-4.8", "valgrind", "g++-4.8-multilib", "libc6-dbg", "libc6-dbg:i386"]
          sources: *apt_sources

    # GCC 4.9
    - env: COMPILER=g++-4.9 HAS_ASAN_32=true HAS_UBSAN_32=true HAS_ASAN_64=true HAS_UBSAN_64=true
      compiler: gcc
      addons: &gcc49
        apt:
          packages: ["g++-4.9", "valgrind", "g++-4.9-multilib", "libc6-dbg", "libc6-dbg:i386"]
          sources: *apt_sources

    # GCC 5
    - env: COMPILER=g++-5 HAS_ASAN_32=true HAS_UBSAN_32=true HAS_ASAN_64=true HAS_UBSAN_64=true
      compiler: gcc
      addons: &gcc5
        apt:
          packages: ["g++-5",   "valgrind", "g++-5-multilib",   "libc6-dbg", "libc6-dbg:i386"]
          sources: *apt_sources

#    # GCC 6
#    # released on 2016.04.27
#    # wait for it to enter the whitelist - https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise
#    # also with homebrew under OSX!!!
#    - env: COMPILER=g++-6 HAS_ASAN_32=true HAS_UBSAN_32=true HAS_ASAN_64=true HAS_UBSAN_64=true
#      compiler: gcc
#      addons: &gcc6
#        apt:
#          packages: ["g++-6",   "valgrind", "g++-6-multilib",   "libc6-dbg", "libc6-dbg:i386"]
#          sources: *apt_sources

    # Clang 3.4
    - env: COMPILER=clang++ HAS_ASAN_64=true HAS_UBSAN_64=true
      addons: &clang
        apt:
          packages: [             "valgrind", "g++-multilib", "libc6-dbg", "libc6-dbg:i386"]
          sources: *apt_sources

    # Clang 3.5
    - env: COMPILER=clang++-3.5 HAS_ASAN_64=true HAS_UBSAN_64=true
      addons: &clang35
        apt:
          packages: ["clang-3.5", "valgrind", "g++-multilib", "libc6-dbg", "libc6-dbg:i386"]
          sources: *apt_sources

    # Clang 3.6
    - env: COMPILER=clang++-3.6 HAS_ASAN_64=true HAS_UBSAN_64=true
      addons: &clang36
        apt:
          packages: ["clang-3.6", "valgrind", "g++-multilib", "libc6-dbg", "libc6-dbg:i386"]
          sources: *apt_sources

    # Clang 3.7
    - env: COMPILER=clang++-3.7 # no sanitizers - not even for 64 bit - https://llvm.org/bugs/show_bug.cgi?id=22757
      addons: &clang37
        apt:
          packages: ["clang-3.7", "valgrind", "g++-multilib", "libc6-dbg", "libc6-dbg:i386"]
          sources: *apt_sources

    # Clang 3.8
    - env: COMPILER=clang++-3.8 # no sanitizers - not even for 64 bit - https://llvm.org/bugs/show_bug.cgi?id=22757
      addons: &clang38
        apt:
          packages: ["clang-3.8", "valgrind", "g++-multilib", "libc6-dbg", "libc6-dbg:i386"]
          sources: *apt_sources

    # Xcode 6.1 Clang
    - env: COMPILER=clang++
      os: osx

    # Xcode 6.2 Clang
    - env: COMPILER=clang++
      osx_image: beta-xcode6.2
      os: osx

    # Xcode 6.3 Clang
    - env: COMPILER=clang++
      osx_image: beta-xcode6.3
      os: osx

    # Xcode 6.4 Clang
    - env: COMPILER=clang++
      osx_image: xcode6.4
      os: osx

    # Xcode 7 Clang
    - env: COMPILER=clang++ HAS_ASAN_32=true HAS_ASAN_64=true
      osx_image: xcode7
      os: osx

    # Xcode 7.1 Clang
    - env: COMPILER=clang++ HAS_ASAN_32=true HAS_ASAN_64=true
      osx_image: xcode7.1
      os: osx

    # Xcode 7.2 Clang
    - env: COMPILER=clang++ HAS_ASAN_32=true HAS_ASAN_64=true
      osx_image: xcode7.2
      os: osx

    # Xcode 7.3 Clang
    - env: COMPILER=clang++ HAS_ASAN_32=true HAS_ASAN_64=true
      osx_image: xcode7.3
      os: osx

    # OSX GCC 4.4
    - env: COMPILER=g++-4.4
      compiler: gcc
      os: osx

    # OSX GCC 4.5
    - env: COMPILER=g++-4.5
      compiler: gcc
      os: osx

    # OSX GCC 4.6
    - env: COMPILER=g++-4.6
      compiler: gcc
      os: osx

    # OSX GCC 4.7
    - env: COMPILER=g++-4.7
      compiler: gcc
      os: osx

    # OSX GCC 4.8
    - env: COMPILER=g++-4.8 HAS_ASAN_32=true HAS_ASAN_64=true
      compiler: gcc
      os: osx

    # OSX GCC 4.9
    - env: COMPILER=g++-4.9 HAS_ASAN_32=true HAS_UBSAN_32=true HAS_ASAN_64=true HAS_UBSAN_64=true
      compiler: gcc
      os: osx

    # OSX GCC 5
    - env: COMPILER=g++-5 HAS_ASAN_32=true HAS_UBSAN_32=true HAS_ASAN_64=true HAS_UBSAN_64=true
      compiler: gcc
      os: osx

#    # OSX GCC 6
#    - env: COMPILER=g++-6 HAS_ASAN_32=true HAS_UBSAN_32=true HAS_ASAN_64=true HAS_UBSAN_64=true
#      compiler: gcc
#      os: osx

    # OSX LLVM-GCC
    - env: COMPILER=g++
      compiler: gcc
      os: osx

before_install:
  - |
    if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
      # update package list
      brew update
      # ccache
      brew install ccache
      # valgrind
      brew install valgrind
      # cmake
      if brew list -1 | grep -q "^cmake\$"; then
        brew outdated cmake || brew upgrade cmake
      else
        brew install cmake
      fi
      # gcc
      if [[ "${COMPILER}" = "g++-4.4" ]]; then
        brew install gcc44
      fi
      if [[ "${COMPILER}" = "g++-4.5" ]]; then
        brew install gcc45
      fi
      if [[ "${COMPILER}" = "g++-4.6" ]]; then
        brew install gcc46
      fi
      if [[ "${COMPILER}" = "g++-4.7" ]]; then
        brew install gcc47
      fi
      if [[ "${COMPILER}" = "g++-4.8" ]]; then
        brew outdated gcc48 || brew upgrade gcc48
      fi
      if [[ "${COMPILER}" = "g++-4.9" ]]; then
        brew install gcc49
      fi
      if [[ "${COMPILER}" = "g++-5" ]]; then
        brew install gcc5
      fi
      if [[ "${COMPILER}" = "g++-6" ]]; then
        brew install gcc6
      fi
    fi
  - git submodule update --init --recursive

install:
  - ${CXX} --version
  - export CXX="ccache ${COMPILER}"
  - ${CXX} --version
  - ccache -s

script:
  # coverage - do not continue with other build configurations after that
  - |
    if [[ "${COVERALLS_SERVICE_NAME}" = "travis-ci" ]]; then
      cmake ${CMAKE_OPTIONS_GLOBAL} -DCMAKE_BUILD_TYPE=Debug .
      make -j2 && make coveralls
      exit
    fi

  # initial run with options
  - cmake ${CMAKE_OPTIONS_GLOBAL} ${CMAKE_OPTIONS} .

  # debug x86
  - cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-m32" .
  - make clean && make -j2
  # valgrind for 32bit under osx fails
  - if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then cmake -DTEST_MODE=VALGRIND . && ctest --output-on-failure ; fi
#  - cmake -DTEST_MODE=COMPARE . && ctest --output-on-failure
  # debug x64
  - cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-m64" .
  - make clean && make -j2
  - cmake -DTEST_MODE=VALGRIND . && ctest --output-on-failure
#  - cmake -DTEST_MODE=COMPARE . && ctest --output-on-failure
  # release x86
  - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m32" .
  - make clean && make -j2
  # valgrind for 32bit under osx fails
  - if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then cmake -DTEST_MODE=VALGRIND . && ctest --output-on-failure ; fi
#  - cmake -DTEST_MODE=COMPARE . && ctest --output-on-failure
  # release x64
  - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m64" .
  - make clean && make -j2
  - cmake -DTEST_MODE=VALGRIND . && ctest --output-on-failure
#  - cmake -DTEST_MODE=COMPARE . && ctest --output-on-failure

  # sanitizers - again 32/64 bit Debug/Release configs through address/undefined sanitizers
  - cmake -DTEST_MODE=NORMAL .
#  - cmake -DTEST_MODE=COMPARE .
  # on separate commands because when something fails I want to see which one exactly
  - if [[ "${HAS_ASAN_64}" = "true" ]];  then cmake -DCMAKE_BUILD_TYPE=Debug   -DCMAKE_CXX_FLAGS="-m64 -fsanitize=address" .   && make clean && make -j2 && ctest --output-on-failure ; fi
  - if [[ "${HAS_ASAN_32}" = "true" ]];  then cmake -DCMAKE_BUILD_TYPE=Debug   -DCMAKE_CXX_FLAGS="-m32 -fsanitize=address" .   && make clean && make -j2 && ctest --output-on-failure ; fi
  - if [[ "${HAS_ASAN_64}" = "true" ]];  then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m64 -fsanitize=address" .   && make clean && make -j2 && ctest --output-on-failure ; fi
  - if [[ "${HAS_ASAN_32}" = "true" ]];  then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m32 -fsanitize=address" .   && make clean && make -j2 && ctest --output-on-failure ; fi
  - if [[ "${HAS_UBSAN_64}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Debug   -DCMAKE_CXX_FLAGS="-m64 -fsanitize=undefined" . && make clean && make -j2 && ctest --output-on-failure ; fi
  - if [[ "${HAS_UBSAN_32}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Debug   -DCMAKE_CXX_FLAGS="-m32 -fsanitize=undefined" . && make clean && make -j2 && ctest --output-on-failure ; fi
  - if [[ "${HAS_UBSAN_64}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m64 -fsanitize=undefined" . && make clean && make -j2 && ctest --output-on-failure ; fi
  - if [[ "${HAS_UBSAN_32}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m32 -fsanitize=undefined" . && make clean && make -j2 && ctest --output-on-failure ; fi

after_script:
  - cat compile_commands.json

---

########################################################################################################################
## COVERITY SCAN #######################################################################################################
########################################################################################################################

branch: {name: coverity_scan, active: yes, mandatory: yes}
language: cpp
compiler: gcc
sudo: false

addons:
  coverity_scan:
    # COVERITY_SCAN_TOKEN added as env var in travis project
    project:
      name: onqtam/doctest
    notification_email: vik.kirilov@gmail.com
    build_command_prepend: cd examples/hello_world && cmake .
    build_command: make
    branch_pattern: coverity_scan
script: true
