language: cpp
sudo: required
dist: trusty
branches:
  only:
    - master
    - coverity_scan
    - /openmw-.*$/
    - /^[0-9]+\.[0-9]+\.[0-9]+.*$/
env:
  global:
   # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
   #   via the "travis encrypt" command using the project repo's public key
  - secure: NZmvVuA0O9NJXVQ12tXQZHDJC2mbFgYNFcsicw0DgW1It2Nk5hxIkF0pfu4/Z59mhQuOPgRVjl5b0FKy2Axh0gkWc1DJEXGwNaiW5lpTMNWR1LJG5rxa8LrDUpFkycpbzfAFuTUZu5z3iYVv64XzELvBuqNGhPMu1LeBnrlech0jFNjkR9p5qtJGWb8zYcPMCC57rig8a9g1ABoVYS6UXjrKpx0946ZLRsE5ukc9pXsypGwPmOMyfzZkxxzIqFaxoE5JIEdaJTWba/6Za315ozYYIi/N35ROI1YAv5GHRe/Iw9XAa4vQpbDzjM7ZSsZdTvvQsSU598gD2xC6jFUKSrpW6GZKwM2x236fZLGnOk5Uw7DUbG+AwpcEmxBwoy9PjBl9ZF3tJykI0gROewCy8MODhdsVMKr1HGIMVBIJySm/RnNqtoDbYV8mYnSl5b8rwJiCajoiR8Zuv4CIfGneeH1a3DOQDPH/qkDsU6ilzF4ANsBlMUUpgY653KBMBmTlNuVZSH527tnD7Fg6JgHVuSQkTbRa1vSkR7Zcre604RZcAoaEdbX3bhVDasPPghU/I742L0RH3oQNlR09pPBDZ8kG7ydl4aPHwpCWnvXNM1vgxtGvnYLztwrse7IoaRXRYiMFmrso78WhMWUDKgvY4wV9aeUu0DtnMezZVIQwCKg=
  - macos_qt_formula=qt
addons:
  apt:
    sources:
      - sourceline: 'ppa:openmw/openmw'
      - sourceline: 'ppa:rakhimov/boost'
      - ubuntu-toolchain-r-test
      - llvm-toolchain-precise-3.8
    packages: [
      # Dev
      cmake, clang-3.8, libunshield-dev, libtinyxml-dev,
      g++-6,
      # Tests
      libgtest-dev, google-mock,
      # Boost
      libboost-filesystem1.61-dev, libboost-program-options1.61-dev, libboost-system1.61-dev,
      # FFmpeg
      libavcodec-dev, libavformat-dev, libavutil-dev, libswscale-dev,
      # Audio & Video
      libsdl2-dev, qtbase5-dev, libopenal-dev,
      # The other ones from OpenMW ppa
      libbullet-dev, libswresample-dev, libopenscenegraph-3.4-dev, libmygui-dev,
      # tes3mp stuff
      libboost1.61-dev, libqt5opengl5-dev
    ]

  coverity_scan:
    project:
      name: "TES3MP/openmw-tes3mp"
      description: "<Your project description here>"
    notification_email: stas5978@gmail.com
    build_command_prepend: "cmake . -DBUILD_UNITTESTS=FALSE -DBUILD_OPENCS=FALSE -DBUILD_BSATOOL=FALSE -DBUILD_ESMTOOL=FALSE -DBUILD_MWINIIMPORTER=FALSE -DBUILD_LAUNCHER=FALSE"
    build_command:   "make -j3"
    branch_pattern: coverity_scan
matrix:
  include:
    - os: linux
      env:
        - ANALYZE="scan-build-3.8 --use-cc clang-3.8 --use-c++ clang++-3.8 "
        - MATRIX_CC="CC=clang-3.8 && CXX=clang++-3.8"
      compiler: clang
    - os: linux
      env:
        - MATRIX_CC="CC=gcc-6 && CXX=g++-6"
    - os: linux
      env:
        - MATRIX_CC="CC=clang-3.8 && CXX=clang++-3.8"
  allow_failures:
    - env:
        - MATRIX_CC="CC=clang-3.8 && CXX=clang++-3.8"
    - env:
        - ANALYZE="scan-build-3.8 --use-cc clang-3.8 --use-c++ clang++-3.8 "
        - MATRIX_CC="CC=clang-3.8 && CXX=clang++-3.8"

before_install:
      - ./CI/before_install.${TRAVIS_OS_NAME}.sh
before_script: ./CI/before_script.${TRAVIS_OS_NAME}.sh
script:
 - cd ./build
 - if [ "$COVERITY_SCAN_BRANCH" != 1 ]; then ${ANALYZE}make -j3; fi
 - if [ "$COVERITY_SCAN_BRANCH" != 1 ] && [ "${TRAVIS_OS_NAME}" = "osx" ]; then make package; fi
 - if [ "$COVERITY_SCAN_BRANCH" != 1 ] && [ "${TRAVIS_OS_NAME}" = "linux" ]; then ./openmw_test_suite; fi
 - if [ "$COVERITY_SCAN_BRANCH" != 1 ] && [ "${TRAVIS_OS_NAME}" = "linux" ]; then cd .. && ./CI/check_tabs.sh; fi
#notifications:
#  email:
#    recipients:
#      - corrmage+travis-ci@gmail.com
#    on_success: change
#    on_failure: always
#  irc:
#    channels:
#      - "chat.freenode.net#openmw"
#    on_success: change
#    on_failure: always
#    use_notice: true