#----------------------------------------------------------------------------- # # Configuration for continuous integration service at travis-ci.org # #----------------------------------------------------------------------------- language: generic sudo: false dist: trusty #----------------------------------------------------------------------------- cache: directories: - $HOME/.ccache env: global: - CCACHE_TEMPDIR=/tmp/.ccache-temp - CCACHE_COMPRESS=1 - CASHER_TIME_OUT=1000 #----------------------------------------------------------------------------- # Save common build configurations as shortcuts, so we can reference them later. addons_shortcuts: addons_clang35: &clang35 apt: sources: [ 'ubuntu-toolchain-r-test', 'boost-latest' ] packages: [ 'libboost1.55-all-dev', 'libgdal-dev', 'libproj-dev', 'libsparsehash-dev', 'spatialite-bin', 'clang-3.5'] addons_clang38: &clang38 apt: sources: [ 'ubuntu-toolchain-r-test', 'boost-latest' ] packages: [ 'libboost1.55-all-dev', 'libgdal-dev', 'libproj-dev', 'libsparsehash-dev', 'spatialite-bin', 'clang-3.8'] addons_clang39: &clang39 apt: sources: [ 'ubuntu-toolchain-r-test', 'boost-latest' ] packages: [ 'libboost1.55-all-dev', 'libgdal-dev', 'libproj-dev', 'libsparsehash-dev', 'spatialite-bin', 'clang-3.9'] addons_clang40: &clang40 apt: sources: [ 'ubuntu-toolchain-r-test', 'boost-latest', 'llvm-toolchain-trusty-4.0' ] packages: [ 'libboost1.55-all-dev', 'libgdal-dev', 'libproj-dev', 'libsparsehash-dev', 'spatialite-bin', 'clang-4.0'] addons_clang50: &clang50 apt: sources: [ 'ubuntu-toolchain-r-test', 'boost-latest', 'llvm-toolchain-trusty-5.0' ] packages: [ 'libboost1.55-all-dev', 'libgdal-dev', 'libproj-dev', 'libsparsehash-dev', 'spatialite-bin', 'clang-5.0', 'g++-6', 'gcc-6'] addons_gcc48: &gcc48 apt: sources: [ 'ubuntu-toolchain-r-test', 'boost-latest' ] packages: [ 'libboost1.55-all-dev', 'libgdal-dev', 'libproj-dev', 'libsparsehash-dev', 'spatialite-bin', 'g++-4.8', 'gcc-4.8' ] addons_gcc49: &gcc49 apt: sources: [ 'ubuntu-toolchain-r-test', 'boost-latest' ] packages: [ 'libboost1.55-all-dev', 'libgdal-dev', 'libproj-dev', 'libsparsehash-dev', 'spatialite-bin', 'g++-4.9', 'gcc-4.9' ] addons_gcc5: &gcc5 apt: sources: [ 'ubuntu-toolchain-r-test', 'boost-latest' ] packages: [ 'libboost1.55-all-dev', 'libgdal-dev', 'libproj-dev', 'libsparsehash-dev', 'spatialite-bin', 'g++-5', 'gcc-5' ] addons_gcc6: &gcc6 apt: sources: [ 'ubuntu-toolchain-r-test', 'boost-latest' ] packages: [ 'libboost1.55-all-dev', 'libgdal-dev', 'libproj-dev', 'libsparsehash-dev', 'spatialite-bin', 'g++-6', 'gcc-6' ] #----------------------------------------------------------------------------- matrix: include: # 1/ Linux Clang Builds - os: linux compiler: linux-clang35-release env: CC='clang-3.5' CXX='clang++-3.5' BUILD_TYPE='Release' addons: *clang35 - os: linux compiler: linux-clang35-dev env: CC='clang-3.5' CXX='clang++-3.5' BUILD_TYPE='Dev' addons: *clang35 - os: linux compiler: linux-clang38-release env: CC='clang-3.8' CXX='clang++-3.8' BUILD_TYPE='Release' addons: *clang38 - os: linux compiler: linux-clang38-dev env: CC='clang-3.8' CXX='clang++-3.8' BUILD_TYPE='Dev' addons: *clang38 - os: linux compiler: linux-clang39-release env: CC='clang-3.9' CXX='clang++-3.9' BUILD_TYPE='Release' addons: *clang39 - os: linux compiler: linux-clang39-dev env: CC='clang-3.9' CXX='clang++-3.9' BUILD_TYPE='Dev' addons: *clang39 - os: linux compiler: linux-clang40-release env: CC='clang-4.0' CXX='clang++-4.0' BUILD_TYPE='Release' addons: *clang40 - os: linux compiler: linux-clang40-dev env: CC='clang-4.0' CXX='clang++-4.0' BUILD_TYPE='Dev' addons: *clang40 - os: linux compiler: linux-clang50-release env: CC='clang-5.0' CXX='clang++-5.0' BUILD_TYPE='Release' addons: *clang50 - os: linux compiler: linux-clang50-dev env: CC='clang-5.0' CXX='clang++-5.0' BUILD_TYPE='Dev' addons: *clang50 # Disabled because it creates false-positives on the old travis systems # - os: linux # compiler: linux-clang50-debug # env: CC='clang-5.0' CXX='clang++-5.0' BUILD_TYPE='Debug' # CXXFLAGS="-fsanitize=address,undefined,integer -fno-sanitize-recover=all -fno-omit-frame-pointer" # LDFLAGS="-fsanitize=address,undefined,integer" # # LSAN doesn't work on container-based system # sudo: required # addons: *clang50 # 2/ Linux GCC Builds - os: linux compiler: linux-gcc48-release env: CC='gcc-4.8' CXX='g++-4.8' BUILD_TYPE='Release' CXXFLAGS='-Wno-return-type' addons: *gcc48 - os: linux compiler: linux-gcc48-dev env: CC='gcc-4.8' CXX='g++-4.8' BUILD_TYPE='Dev' CXXFLAGS='-Wno-return-type' addons: *gcc48 - os: linux compiler: linux-gcc49-release env: CC='gcc-4.9' CXX='g++-4.9' BUILD_TYPE='Release' addons: *gcc49 - os: linux compiler: linux-gcc49-dev env: CC='gcc-4.9' CXX='g++-4.9' BUILD_TYPE='Dev' addons: *gcc49 - os: linux compiler: linux-gcc5-release env: CC='gcc-5' CXX='g++-5' BUILD_TYPE='Release' addons: *gcc5 - os: linux compiler: linux-gcc5-dev env: CC='gcc-5' CXX='g++-5' BUILD_TYPE='Dev' addons: *gcc5 - os: linux compiler: linux-gcc6-release env: CC='gcc-6' CXX='g++-6' BUILD_TYPE='Release' addons: *gcc6 - os: linux compiler: linux-gcc6-dev env: CC='gcc-6' CXX='g++-6' BUILD_TYPE='Dev' addons: *gcc6 - os: linux compiler: linux-gcc6-coverage env: CC='gcc-6' CXX='g++-6' BUILD_TYPE='Coverage' addons: *gcc6 # 3/ OSX Clang Builds - os: osx osx_image: xcode6.4 compiler: xcode64-clang-release env: CC='clang' CXX='clang++' BUILD_TYPE='Release' - os: osx osx_image: xcode6.4 compiler: xcode64-clang-dev env: CC='clang' CXX='clang++' BUILD_TYPE='Dev' - os: osx osx_image: xcode7 compiler: xcode7-clang-release env: CC='clang' CXX='clang++' BUILD_TYPE='Release' - os: osx osx_image: xcode7 compiler: xcode7-clang-dev env: CC='clang' CXX='clang++' BUILD_TYPE='Dev' - os: osx osx_image: xcode8.3 compiler: xcode8-clang-release env: CC='clang' CXX='clang++' BUILD_TYPE='Release' - os: osx osx_image: xcode8.3 compiler: xcode8-clang-dev env: CC='clang' CXX='clang++' BUILD_TYPE='Dev' install: - git clone --quiet --depth 1 https://github.com/mapbox/protozero.git ../protozero - | if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then brew remove gdal brew install cmake boost google-sparsehash gdal || true fi - cmake --version before_script: - cd ${TRAVIS_BUILD_DIR} - git submodule update --init - mkdir build && cd build - cmake -LA .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DBUILD_DATA_TESTS=ON -DBUILD_WITH_CCACHE=1 script: - make VERBOSE=1 && ctest --output-on-failure after_success: - | if [ "${BUILD_TYPE}" = "Coverage" ]; then curl -S -f https://codecov.io/bash -o codecov chmod +x codecov gcov-${CXX#g++-} -p $(find test/CMakeFiles -name '*.o') ./codecov -Z -c -X gcov -F unit_tests gcov-${CXX#g++-} -p $(find test/data-tests -name '*.o') ./codecov -Z -c -X gcov -F data_tests gcov-${CXX#g++-} -p $(find examples -name '*.o') ./codecov -Z -c -X gcov -F examples fi #-----------------------------------------------------------------------------