sudo: required dist: trusty language: cpp # Operating system selection os: - linux - osx # Compiler selection compiler: - clang - gcc matrix: # Remove default jobs. exclude: - compiler: gcc - compiler: clang # Add non-default jobs. include: - compiler: gcc os: linux addons: apt: sources: # add PPAs with more up-to-date toolchains - ubuntu-toolchain-r-test - george-edison55-precise-backports - sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.8 main' key_url: 'http://apt.llvm.org/llvm-snapshot.gpg.key' packages: # GCC 6 - gcc-6 - g++-6 # PhysFS - libphysfs-dev # SDL 2 - libsdl2-dev - libsdl2-image-dev - libsdl2-mixer-dev - libsdl2-ttf-dev # CMake (outdated) - cmake-data - cmake env: - MATRIX_EVAL_BEFORE_INSTALL="CC=gcc-6 && CXX=g++-6" - MATRIX_EVAL_BEFORE_SCRIPT="export CC=gcc-6 && export CXX=g++-6" - compiler: clang os: linux addons: apt: sources: # add PPAs with more up-to-date toolchains - ubuntu-toolchain-r-test - george-edison55-precise-backports - sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-4.0 main' key_url: 'http://apt.llvm.org/llvm-snapshot.gpg.key' packages: # GCC 6 - gcc-6 - g++-6 # CLANG 4.0 - clang-4.0 - libc++-dev # PhysFS - libphysfs-dev # SDL 2 - libsdl2-dev - libsdl2-image-dev - libsdl2-mixer-dev - libsdl2-ttf-dev # CMake (outdated) - cmake-data - cmake env: - MATRIX_EVAL_BEFORE_INSTALL="CC=clang-4.0 && CXX=clang++-4.0 && CXXFLAGS=\"-ftemplate-depth=1024 -std=c++11\"" - MATRIX_EVAL_BEFORE_SCRIPT="export CC=clang-4.0 && CXX=clang++-4.0 && CXXFLAGS=\"-ftemplate-depth=1024 -std=c++11 -stdlib=libc++\"" - compiler: clang os: osx before_install: - eval "${MATRIX_EVAL_BEFORE_INSTALL}" - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew update; brew install sdl2; brew info sdl2; brew install sdl2_image; brew info sdl2_image; brew install sdl2_mixer; brew info sdl2_mixer; brew install sdl2_ttf; brew info sdl2_ttf; brew install physfs; fi # Donwload CMake binaries. install: - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps" - mkdir -p "${DEPS_DIR}" && cd "${DEPS_DIR}" # Download CMake 3.10.1 binary. - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then CMAKE_BIN_URL="https://cmake.org/files/v3.10/cmake-3.10.1-Darwin-x86_64.tar.gz" ; fi - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then CMAKE_BIN_URL="https://cmake.org/files/v3.10/cmake-3.10.1-Linux-x86_64.tar.gz" ; fi - | mkdir -p cmake-bin cd cmake-bin wget --no-check-certificate -O - -q "${CMAKE_BIN_URL}" | tar xsz --strip-components=1 -f - cd .. export PATH="${DEPS_DIR}/cmake-bin/bin:${PATH}" # Invoke CMake on CMakeLists.txt. before_script: - eval "${MATRIX_EVAL_BEFORE_SCRIPT}" - cd "${TRAVIS_BUILD_DIR}" - cmake CMakeLists.txt script: - cd "${TRAVIS_BUILD_DIR}" - make all && make check notifications: webhooks: urls: - https://webhooks.gitter.im/e/bf24f1666021dc4df89a on_success: always # options: [always|never|change] default: always on_failure: always # options: [always|never|change] default: always on_start: false # default: false