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

sudo: required

matrix:
  include:
    - os: linux
      compiler: gcc
      env: Tr_Compiler_Version="default"
    - os: linux
      compiler: gcc
      env: Tr_Compiler_Version="5"
    - os: linux
      compiler: gcc
      env: Tr_Compiler_Version="6"
    - os: linux
      compiler: gcc
      env: Tr_Compiler_Version="7"
    - os: linux
      compiler: gcc
      env: Tr_Compiler_Version="8"

      # clang
    - os: linux
      compiler: clang
      env: Tr_Compiler_Version="default"
    - os: linux
      compiler: clang
      env: Tr_Compiler_Version="6.0"

      # osx
    - os: osx
      osx_image: xcode9.2
      env: Tr_Xcode_Version="9.2"
    - os: osx
      osx_image: xcode9.3beta
      env: Tr_Xcode_Version="9.3beta"

git:
  submodules: false

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 fontconfig 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
# version 6 skipped here. Below, it's used to test use of FORCE_EMBEDDED_LIBS option
  - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$(echo "$CC" | grep 'clang')" = "" ] && [ $Tr_Compiler_Version != "6" ]; then
        mkdir build;
        cd build;
        cmake ..  -DCMAKE_INSTALL_PREFIX=$PWD/local -DBUILD_ZETAGLEST_TESTS=ON;
        make && make install;
    fi
  - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$(echo "$CC" | grep 'clang')" != "" ]; then
        mkdir build;
        cd build;
        cmake .. -DCMAKE_INSTALL_PREFIX=$PWD/local -DBUILD_ZETAGLEST_TESTS=ON;
        make && make install;
    fi
  - if [ "$TRAVIS_OS_NAME" = "osx" ]; then
        mkdir build;
        cd build;
        cmake .. -DCMAKE_INSTALL_PREFIX=$PWD/local -DBUILD_ZETAGLEST_TESTS=ON;
        make && make install;
        echo 'Dependencies:';
        otool -L zetaglest;
    fi
  - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$(echo "$CC" | grep 'clang')" = "" ] && [ $Tr_Compiler_Version = "6" ]; then
        mkdir build;
        cd build;
        cmake ..  -DFORCE_EMBEDDED_LIBS=ON -DCMAKE_INSTALL_PREFIX=$PWD/local -DBUILD_ZETAGLEST_TESTS=ON;
        make && make install;
    fi

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