sudo: required

language: cpp

notifications:
  email:
    on_success: never
    on_failure: always

env:
  global:
    - CMAKE_VERSION=3.15.4

before_install:
  - |
    if [ "$TRAVIS_OS_NAME" = "osx" ];  then
      wget --no-check-certificate https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-Darwin-x86_64.tar.gz
      tar -xzf cmake-${CMAKE_VERSION}-Darwin-x86_64.tar.gz
      export PATH=$PWD/cmake-${CMAKE_VERSION}-Darwin-x86_64/CMake.app/Contents/bin:$PATH
      cmake --version
    fi
  - |
    if [ "$TRAVIS_OS_NAME" = "linux" ]; then
      # Link gcc-7 and g++-7 to their standard commands
      sudo ln -s /usr/bin/gcc-7 /usr/local/bin/gcc
      sudo ln -s /usr/bin/g++-7 /usr/local/bin/g++
      # Export CC and CXX to tell cmake which compiler to use
      export CC=/usr/bin/gcc-7
      export CXX=/usr/bin/g++-7
      # Check versions of gcc, g++ and cmake
      gcc -v
      g++ -v
      # Download a recent cmake
      mkdir $HOME/usr
      export PATH="$HOME/usr/bin:$PATH"
      wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-Linux-x86_64.sh
      chmod +x cmake-${CMAKE_VERSION}-Linux-x86_64.sh
      ./cmake-${CMAKE_VERSION}-Linux-x86_64.sh --prefix=$HOME/usr --exclude-subdir --skip-license
      cmake --version
      sudo apt-get update
      sudo apt-get install libx11-dev
      sudo apt-get install mesa-common-dev
      sudo apt-get install mesa-utils
      sudo apt-get install libgl-dev
    fi

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - gcc-7
      - g++-7
      - cmake
      
matrix:
  include:
  - os: linux
    compiler: gcc
    env:
      - CONFIG=Debug
  - os: osx
    compiler: clang
    env: 
      - CONFIG=Debug
      - IOS=false
  - os: osx
    compiler: clang
    env: 
      - CONFIG=Debug
      - IOS=true
  - os: linux
    compiler: gcc
    env:
      - CONFIG=Release
  - os: osx
    compiler: clang
    env: 
      - CONFIG=Release
      - IOS=false
  - os: osx
    compiler: clang
    env: 
      - CONFIG=Release
      - IOS=true
    
script:

  # Run cmake
  - mkdir cmk_build
  - cd cmk_build
  - |
    if [ "$TRAVIS_OS_NAME" = "linux" ]; then 
      cmake .. -G "Unix Makefiles" -DDILIGENT_ENABLE_TESTS=TRUE -DCMAKE_BUILD_TYPE=${CONFIG}
      cmake --build .
    fi
  - |
    if [ "$TRAVIS_OS_NAME" = "osx" ]; then 
      if [ "$IOS" = "true" ]; then 
        cmake .. -DCMAKE_TOOLCHAIN_FILE=../DiligentCore/ios.toolchain.cmake -DIOS_PLATFORM=SIMULATOR64 -DDILIGENT_ENABLE_TESTS=TRUE -G "Xcode"
      else
        cmake .. -DDILIGENT_ENABLE_TESTS=TRUE -G "Xcode"
      fi
      xcodebuild -configuration ${CONFIG} | xcpretty
    fi
