# Adapted from various sources, including: # - Louis Dionne's Hana: https://github.com/ldionne/hana # - Paul Fultz II's FIT: https://github.com/pfultz2/Fit # - Eric Niebler's range-v3: https://github.com/ericniebler/range-v3 language: cpp addons: &gcc48 apt: packages: - g++-4.8 - valgrind sources: - ubuntu-toolchain-r-test addons: &gcc49 apt: packages: - g++-4.9 - valgrind sources: - ubuntu-toolchain-r-test addons: &gcc7 apt: packages: - g++-7 - valgrind sources: - ubuntu-toolchain-r-test addons: &clang35 apt: packages: - clang-3.5 - valgrind sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.5 matrix: include: # Test gcc-4.8: C++11, Build=Debug/Release - env: GCC_VERSION=4.8 BUILD_TYPE=Debug CPP=11 os: linux addons: *gcc48 - env: GCC_VERSION=4.8 BUILD_TYPE=Release CPP=11 os: linux addons: *gcc48 # Test gcc-4.9: C++11, Build=Debug/Release - env: GCC_VERSION=4.9 BUILD_TYPE=Debug CPP=11 os: linux addons: *gcc49 - env: GCC_VERSION=4.9 BUILD_TYPE=Release CPP=11 os: linux addons: *gcc49 # Test gcc-7: C++11, Build=Debug/Release - env: GCC_VERSION=7 BUILD_TYPE=Debug CPP=11 os: linux addons: *gcc7 - env: GCC_VERSION=7 BUILD_TYPE=Release CPP=11 os: linux addons: *gcc7 # Test clang-3.5: C++11, Build=Debug/Release - env: CLANG_VERSION=3.5 BUILD_TYPE=Debug CPP=11 os: linux addons: *clang35 - env: CLANG_VERSION=3.5 BUILD_TYPE=Release CPP=11 os: linux addons: *clang35 # Test gcc-7: C++11, Build=Debug, ASAN=On - env: GCC_VERSION=7 BUILD_TYPE=Debug CPP=11 ASAN=On os: linux addons: *gcc7 # Test gcc-7: C++11, Build=Debug, TSAN=On - env: GCC_VERSION=7 BUILD_TYPE=Debug CPP=11 TSAN=On os: linux addons: *gcc7 before_install: - if [ -n "$GCC_VERSION" ]; then export CXX="g++-${GCC_VERSION}" CC="gcc-${GCC_VERSION}"; fi - if [ -n "$CLANG_VERSION" ]; then export CXX="clang++-${CLANG_VERSION}" CC="clang-${CLANG_VERSION}"; fi - which $CXX - which $CC - which valgrind - $CXX --version - cmake --version - valgrind --version install: - if [ "$ASAN" == "On" ]; then export CXX_FLAGS="${CXX_FLAGS} -fsanitize=address,undefined -fno-omit-frame-pointer -fno-sanitize=signed-integer-overflow -fuse-ld=gold"; fi - if [ "$TSAN" == "On" ]; then export CXX_FLAGS="${CXX_FLAGS} -fsanitize=thread -fno-omit-frame-pointer -fuse-ld=gold"; fi - cd ${TRAVIS_BUILD_DIR} - mkdir -p build && cd build - cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=$CPP -DCMAKE_CXX_FLAGS="${CXX_FLAGS}" -DSPDLOG_BUILD_EXAMPLES=ON --warn-uninitialized - VERBOSE=1 make -j2 script: - if [ "$ASAN" != "On" ] && [ "$TSAN" != "On" ]; then CTEST_FLAGS="-DExperimentalMemCheck"; fi - ctest -j2 -VV $CTEST_FLAGS notifications: email: false