addons: apt: packages: - g++-4.8 - libgl1-mesa-dev - ninja-build matrix: include: - language: python python: 3.6 os: linux dist: xenial compiler: gcc env: - JOBID=linux-gl - language: cpp os: osx compiler: clang env: - JOBID=macos-gl notifications: webhooks: urls: - https://webhooks.gitter.im/e/00ec7a9066bb0fec98f3 on_success: change on_failure: always on_start: never cache: directories: - $HOME/cmake - $HOME/pybind11 install: - if [ "$TRAVIS_OS_NAME" == "linux" ]; then export CXX=g++-4.8; fi # Download CMake 3.1.3 to ensure we're still compatible with it (Travis has # 3.9 since December 2017). Also, the PATH setting can't be cached, so it's # separate (bit me two times already). Android needs CMake 3.7, but # https://gitlab.kitware.com/cmake/cmake/issues/17253 is fixed in 3.9.2, so # grab that. FindVulkan is since 3.7, in that case just use the system package. - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ ! -e "$HOME/cmake/bin" ]; then cd $HOME ; wget -nc --no-check-certificate https://cmake.org/files/v3.1/cmake-3.1.3-Linux-x86_64.tar.gz && mkdir -p cmake && cd cmake && tar --strip-components=1 -xzf ../cmake-3.1.3-Linux-x86_64.tar.gz && cd $TRAVIS_BUILD_DIR ; fi - if [ "$TRAVIS_OS_NAME" == "linux" ]; then export PATH=$HOME/cmake/bin:$PATH && cmake --version; fi - if [ "$TRAVIS_OS_NAME" == "osx" ]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install ninja; fi # Code coverage of python bindings - if [ "$TRAVIS_OS_NAME" == "linux" ] || [ "$TRAVIS_OS_NAME" == "osx" ]; then pip3 install coverage codecov; fi # pybind11 (cached) - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ ! -e "$HOME/pybind11/bin" ]; then wget -nc https://github.com/pybind/pybind11/archive/v2.2.4.tar.gz && tar -xzf v2.2.4.tar.gz && cd pybind11-2.2.4 && mkdir -p build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/pybind11 -DPYBIND11_PYTHON_VERSION=3.6 -DPYBIND11_TEST=OFF -G Ninja && ninja install && cd $TRAVIS_BUILD_DIR; fi - if [ "$TRAVIS_OS_NAME" == "osx" ]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install pybind11; fi script: - if [ "$TRAVIS_OS_NAME" == "linux" ] || [ "$TRAVIS_OS_NAME" == "osx" ]; then ./package/ci/travis-desktop.sh; fi # Travis somehow is not able to gather all output, try to force it using this - sync after_success: - if [ "$TRAVIS_OS_NAME" == "linux" ] || [ "$TRAVIS_OS_NAME" == "osx" ]; then cd src/python && codecov; fi