# https://docs.travis-ci.com/user/customizing-the-build/
language: cpp

sudo: required

matrix:
  include:
    - os: linux
      compiler: gcc
      env: Tr_Compiler_Version="6"
      # https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test
      dist: trusty # broken compiler on 12.04
    - os: linux
      compiler: gcc
      env: Tr_Compiler_Version="default"
      dist: trusty
    - os: linux
      compiler: clang
      env: Tr_Compiler_Version="3.9"
      # http://apt.llvm.org/, compiler not newer than available on debian testing
      # https://packages.debian.org/search?suite=testing&keywords=clang-
      dist: trusty
    - os: linux
      compiler: clang
      env: Tr_Compiler_Version="default"
      dist: trusty # broken compiler on 12.04
    - os: osx
      #osx_image: xcode6.4 # seems broken and has lower priority in queue than default one
      env: Tr_Xcode_Version="default"
      #env: Tr_Xcode_Version="6.4"
      # https://docs.travis-ci.com/user/osx-ci-environment/#OS-X-Version
      # https://github.com/Homebrew/brew/blob/master/docs/Installation.md#requirements
  fast_finish: true
  allow_failures:
    - os: osx
    # it's not really acceptable to wait 40 minutes or sometimes up to even 3 hours
    # for the result just because the queue for mac is always so long

git:
  submodules: false

#branches:
#  only:
#    - master

before_install:
  - if [ "$TRAVIS_OS_NAME" = "linux" ]; then ./.travis-before_install.sh "$CC" "$Tr_Compiler_Version"; fi
  - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update; fi
  - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install sdl2 lua freetype ftgl libogg glew libvorbis cppunit glib fribidi miniupnpc wxmac; fi
    # ^ not on travis also needed are: cmake + pkgconfig + xquartz (find by "search") + (maybe) git + (maybe) bash
  - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew outdated cmake || brew upgrade cmake; brew outdated pkgconfig || brew upgrade pkgconfig; fi
  - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew link --force gettext; fi
    # ^ odd linking problems related with brew which is not creating links
  - if [ "$TRAVIS_OS_NAME" = "osx" ] && [ "$Tr_Xcode_Version" = "6.4" ]; then brew install Caskroom/cask/xquartz; fi
  - if [ "$Tr_Compiler_Version" != "" ] && [ "$Tr_Compiler_Version" != "default" ] && [ "$CC" = "gcc" ]; then export CXX="g++-${Tr_Compiler_Version}" CC="gcc-${Tr_Compiler_Version}"; fi
  - if [ "$Tr_Compiler_Version" != "" ] && [ "$Tr_Compiler_Version" != "default" ] && [ "$CC" == "clang" ]; then export CXX="clang++-${Tr_Compiler_Version}" CC="clang-${Tr_Compiler_Version}"; fi
  - $CC --version
  - $CXX --version
  - cmake --version

script:
# ALL THE BUILD COMMANDS HERE
  - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$(echo "$CC" | grep 'clang')" = "" ]; then mk/linux/build-mg.sh -c 4; fi
  - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$(echo "$CC" | grep 'clang')" != "" ]; then mk/linux/build-mg.sh -w -c 4; fi
  # ^ -w may be removed on more modern dist: than trusty, problems related with 'new wx+clang+old gcc'
  - if [ "$TRAVIS_OS_NAME" = "osx" ]; then mk/macos/build-mg.sh -c 4; fi

# https://docs.travis-ci.com/user/notifications/#IRC-notification
notifications:
  irc:
    channels:
      - "irc.freenode.org#megaglest"
    skip_join: true
    use_notice: true
    on_success: change
    template:
      - "[%{repository_name}#%{branch}@%{commit}] %{author}: %{message} %{build_url}"
