# Linux Build Configuration for Travis language: cpp os: - linux - osx # Use Ubuntu 14.04 LTS (Trusty) as the Linux testing environment. sudo: required dist: trusty env: - SHADERC_BUILD_TYPE=Release - SHADERC_BUILD_TYPE=Debug compiler: - clang - gcc matrix: fast_finish: true # Show final status immediately if a test fails. exclude: # Skip GCC builds on Mac OS X. - os: osx compiler: gcc include: # Additional GCC builds for code coverage. - os: linux compiler: gcc env: SHADERC_CODE_COVERAGE=ON # Additional build using Android NDK - env: BUILD_NDK=ON cache: apt: true branches: only: - master addons: apt: packages: - clang-3.6 - ninja-build - lcov before_install: # Install ninja on Mac OS X. - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update && brew install ninja; fi - if [[ "$BUILD_NDK" == "ON" ]]; then git clone --depth=1 https://github.com/urho3d/android-ndk.git $HOME/android-ndk; export ANDROID_NDK=$HOME/android-ndk; git clone --depth=1 https://github.com/taka-no-me/android-cmake.git $HOME/android-cmake; export TOOLCHAIN_PATH=$HOME/android-cmake/android.toolchain.cmake; fi install: - pip install --user nose - pip install --user cpp-coveralls - export PATH=$HOME/.local/bin:$PATH # Make sure we can find the above Python packages # Make sure that clang-3.6 is selected. - if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "clang" ]]; then export CC=clang-3.6 CXX=clang++-3.6; fi before_script: - git clone https://github.com/google/googletest.git third_party/googletest - git clone https://github.com/google/glslang.git third_party/glslang - git clone https://github.com/KhronosGroup/SPIRV-Tools.git third_party/spirv-tools - git clone https://github.com/KhronosGroup/SPIRV-Headers.git third_party/spirv-tools/external/spirv-headers script: - mkdir build && cd build - if [[ "$BUILD_NDK" == "ON" ]]; then cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_PATH} -DANDROID_NATIVE_API_LEVEL=android-9 -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI="armeabi-v7a with NEON" -DSHADERC_SKIP_TESTS=ON -GNinja ..; else cmake -DCMAKE_BUILD_TYPE=${SHADERC_BUILD_TYPE:-Debug} -DENABLE_CODE_COVERAGE=${SHADERC_CODE_COVERAGE:-OFF} -GNinja ..; fi - ninja - if [[ "$BUILD_NDK" != "ON" ]]; then ctest -j`nproc` --output_on_failure; fi after_success: # Collect coverage and push to coveralls.info. # Ignore third party source code and tests. - if [[ "$CC" == "gcc" && "$SHADERC_CODE_COVERAGE" == "ON" ]]; then coveralls --root ../ --build-root ./ --exclude-pattern '.+/third_party/' --exclude-pattern '.+/.+_test\.cc' --exclude-pattern '.+/CMakeFiles/' --gcov /usr/bin/gcov --gcov-options '\--long-file-names --preserve-paths' --verbose; fi notifications: email: recipients: - antiagainst@google.com - awoloszyn@google.com - deki@google.com - dneto@google.com - qining@google.com on_success: change on_failure: always