| os: |
| - linux |
| - osx |
| |
| # If linux, use precise |
| dist: trusty |
| sudo: false |
| |
| language: |
| - cpp |
| |
| python: |
| - "2.7" |
| |
| env: |
| - BUILD_TYPE=Debug |
| - BUILD_TYPE=Release |
| |
| compiler: |
| - clang |
| |
| cache: |
| - pip |
| |
| addons: |
| # Everything under apt is only used on linux |
| apt: |
| sources: |
| # PPA for clang 6.0 |
| - llvm-toolchain-trusty-6.0 |
| # PPA for clang-format 7 |
| - llvm-toolchain-trusty |
| # PPA for a more recen libstdc++ |
| - ubuntu-toolchain-r-test |
| packages: |
| # Get recent compilers |
| - clang-6.0 |
| # Pull a recent version of libstdc++ |
| - libstdc++-6-dev |
| # Ninja builds are faster |
| - ninja-build |
| # Required for the code generator, unfortunately this is jinja2 2.6 which lacks some of the options we use |
| - python-jinja2 |
| # Required dependency for GLFW on Linux |
| - xorg-dev |
| # Format using the latest and greatest |
| - clang-format-7 |
| |
| before_install: |
| - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update; fi |
| |
| install: |
| # Install dependencies required on OSX |
| - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install ninja; fi |
| - if [ "$TRAVIS_OS_NAME" == "osx" ]; then pip2 install --user jinja2; fi |
| |
| script: |
| # Use the more recent compilers we just installed |
| - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$CXX" == "clang++" ]; then export CXX="clang++-6.0" CC="clang-6.0"; fi |
| |
| # Build |
| - mkdir -p build |
| - cd build |
| - cmake --version |
| - cmake -G "Ninja" -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DDAWN_USE_WERROR=1 .. |
| - cmake --build . -- -j 1 |
| |
| # Test |
| - ./dawn_unittests |
| |
| # Get out of the build dir |
| - cd .. |
| |
| # Lint |
| - if [ "$TRAVIS_OS_NAME" == "linux" ]; then ./scripts/travis_lint_format.sh clang-format-7; fi |