#########################
# project configuration #
#########################

# C++ project
language: cpp

dist: trusty
sudo: required
group: edge


################
# build matrix #
################

matrix:
  include:

  # Valgrind
  - os: linux
    compiler: gcc
    env:
      - COMPILER=g++-4.9
      - CMAKE_OPTIONS=-DJSON_Valgrind=ON
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test']
        packages: ['g++-4.9', 'valgrind', 'ninja-build']

  # clang sanitizer
  - os: linux
    compiler: clang
    env:
      - COMPILER=clang++-7
      - CMAKE_OPTIONS=-DJSON_Sanitizer=ON
      - UBSAN_OPTIONS=print_stacktrace=1,suppressions=$(pwd)/test/src/UBSAN.supp
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-7']
        packages: ['g++-6', 'clang-7', 'ninja-build']
    before_script:
      - export PATH=$PATH:/usr/lib/llvm-7/bin

  # cppcheck
  - os: linux
    compiler: gcc
    env:
      - COMPILER=g++-4.9
      - SPECIAL=cppcheck
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test']
        packages: ['g++-4.9', 'cppcheck', 'ninja-build']
    after_success:
      - make cppcheck

  # no exceptions
  - os: linux
    compiler: gcc
    env:
      - COMPILER=g++-4.9
      - CMAKE_OPTIONS=-DJSON_NoExceptions=ON
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test']
        packages: ['g++-4.9', 'ninja-build']

  # check amalgamation
  - os: linux
    compiler: gcc
    env:
      - COMPILER=g++-4.9
      - SPECIAL=amalgamation
      - MULTIPLE_HEADERS=ON
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test']
        packages: ['g++-4.9', 'astyle', 'ninja-build']
    after_success:
      - make check-amalgamation

  # Coveralls (http://gronlier.fr/blog/2015/01/adding-code-coverage-to-your-c-project/)

  - os: linux
    compiler: gcc
    dist: bionic
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test']
        packages: ['g++-7', 'ninja-build']
    before_script:
      - pip install --user cpp-coveralls
    after_success:
      - coveralls --build-root test --include include/nlohmann --gcov 'gcov-7' --gcov-options '\-lp'
    env:
      - COMPILER=g++-7
      - CMAKE_OPTIONS=-DJSON_Coverage=ON
      - MULTIPLE_HEADERS=ON

  # Coverity (only for branch coverity_scan)

  - os: linux
    compiler: clang
    before_install: echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-certificates.crt
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.6']
        packages: ['g++-6', 'clang-3.6', 'ninja-build']
      coverity_scan:
        project:
          name: "nlohmann/json"
          description: "Build submitted via Travis CI"
        notification_email: niels.lohmann@gmail.com
        build_command_prepend: "mkdir coverity_build ; cd coverity_build ; cmake .. ; cd .."
        build_command: "make -C coverity_build"
        branch_pattern: coverity_scan
    env:
      - SPECIAL=coverity
      - COMPILER=clang++-3.6
        # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
        #   via the "travis encrypt" command using the project repo's public key
      - secure: "m89SSgE+ASLO38rSKx7MTXK3n5NkP9bIx95jwY71YEiuFzib30PDJ/DifKnXxBjvy/AkCGztErQRk/8ZCvq+4HXozU2knEGnL/RUitvlwbhzfh2D4lmS3BvWBGS3N3NewoPBrRmdcvnT0xjOGXxtZaJ3P74TkB9GBnlz/HmKORA="

  # OSX / Clang

  - os: osx
    osx_image: xcode10.2

  - os: osx
    osx_image: xcode11.2

  - os: osx
    osx_image: xcode12

  - os: osx
    osx_image: xcode12
    env:
      - IMPLICIT_CONVERSIONS=OFF

  # Linux / GCC

  - os: linux
    compiler: gcc
    env: COMPILER=g++-4.8
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test']
        packages: ['g++-4.8', 'ninja-build']

  - os: linux
    compiler: gcc
    env: COMPILER=g++-4.9
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test']
        packages: ['g++-4.9', 'ninja-build']

  - os: linux
    compiler: gcc
    env: COMPILER=g++-5
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test']
        packages: ['g++-5', 'ninja-build']

  - os: linux
    compiler: gcc
    env: COMPILER=g++-6
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test']
        packages: ['g++-6', 'ninja-build']

  - os: linux
    compiler: gcc
    env: COMPILER=g++-7
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test']
        packages: ['g++-7', 'ninja-build']

  - os: linux
    compiler: gcc
    env: COMPILER=g++-8
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test']
        packages: ['g++-8', 'ninja-build']

  - os: linux
    compiler: gcc
    env: COMPILER=g++-9
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test']
        packages: ['g++-9', 'ninja-build']

  - os: linux
    compiler: gcc
    env:
      - COMPILER=g++-9
      - IMPLICIT_CONVERSIONS=OFF
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test']
        packages: ['g++-9', 'ninja-build']

  - os: linux
    compiler: gcc
    env:
      - COMPILER=g++-9
      - CXX_STANDARD=17
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test']
        packages: ['g++-9', 'ninja-build']

  # Linux / Clang

  - os: linux
    compiler: clang
    env: COMPILER=clang++-3.5
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.5']
        packages: ['g++-6', 'clang-3.5', 'ninja-build']

  - os: linux
    compiler: clang
    env: COMPILER=clang++-3.6
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.6']
        packages: ['g++-6', 'clang-3.6', 'ninja-build']

  - os: linux
    compiler: clang
    env: COMPILER=clang++-3.7
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.7']
        packages: ['g++-6', 'clang-3.7', 'ninja-build']

  - os: linux
    compiler: clang
    env: COMPILER=clang++-3.8
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test']
        packages: ['g++-6', 'clang-3.8', 'ninja-build']

  - os: linux
    compiler: clang
    env: COMPILER=clang++-3.9
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test']
        packages: ['g++-6', 'clang-3.9', 'ninja-build']

  - os: linux
    compiler: clang
    env: COMPILER=clang++-4.0
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-4.0']
        packages: ['g++-6', 'clang-4.0', 'ninja-build']

  - os: linux
    compiler: clang
    env: COMPILER=clang++-5.0
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-5.0']
        packages: ['g++-6', 'clang-5.0', 'ninja-build']

  - os: linux
    compiler: clang
    env: COMPILER=clang++-6.0
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-6.0']
        packages: ['g++-6', 'clang-6.0', 'ninja-build']

  - os: linux
    compiler: clang
    env: COMPILER=clang++-7
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-7']
        packages: ['g++-6', 'clang-7', 'ninja-build']

  - os: linux
    compiler: clang
    env:
      - COMPILER=clang++-7
      - CXX_STANDARD=17
    addons:
      apt:
        sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-7']
        packages: ['g++-7', 'clang-7', 'ninja-build']

################
# build script #
################

script:
  # get CMake and Ninja (only for systems with brew - macOS)
  - |
     if [[ (-x $(which brew)) ]]; then
       brew update
       brew install cmake ninja
       brew upgrade cmake
       cmake --version
     fi

  # make sure CXX is correctly set
  - if [[ "${COMPILER}" != "" ]]; then export CXX=${COMPILER}; fi
  # by default, use the single-header version
  - if [[ "${MULTIPLE_HEADERS}" == "" ]]; then export MULTIPLE_HEADERS=OFF; fi
  # by default, use implicit conversions
  - if [[ "${IMPLICIT_CONVERSIONS}" == "" ]]; then export IMPLICIT_CONVERSIONS=ON; fi

  # append CXX_STANDARD to CMAKE_OPTIONS if required
  - CMAKE_OPTIONS+=${CXX_STANDARD:+ -DCMAKE_CXX_STANDARD=$CXX_STANDARD -DCMAKE_CXX_STANDARD_REQUIRED=ON}

  # compile and execute unit tests
  - mkdir -p build && cd build
  - cmake .. ${CMAKE_OPTIONS} -DJSON_MultipleHeaders=${MULTIPLE_HEADERS} -DJSON_ImplicitConversions=${IMPLICIT_CONVERSIONS} -DJSON_BuildTests=On -GNinja && cmake --build . --config Release
  - ctest -C Release --timeout 2700 -V -j
  - cd ..

  # check if homebrew works (only checks develop branch)   
  - if [ `which brew` ]; then   
    brew update ;   
    brew tap nlohmann/json ;    
    brew install nlohmann_json --HEAD ;    
    brew test nlohmann_json ;    
    fi
