language: c++ dist: bionic sudo: false addons: apt: packages: - cmake - lcov - clang-tools-7 - valgrind matrix: include: - os: linux compiler: gcc env: BUILD_TYPE=normal - os: linux compiler: clang env: BUILD_TYPE=normal - os: linux compiler: gcc env: BUILD_TYPE=cmake - os: linux compiler: clang env: BUILD_TYPE=cmake - os: linux compiler: gcc env: BUILD_TYPE=coverage - os: linux compiler: clang env: BUILD_TYPE=ubsan - os: linux compiler: clang env: BUILD_TYPE=asan - os: linux compiler: clang env: BUILD_TYPE=lsan - os: linux compiler: clang env: BUILD_TYPE=analyze - os: linux compiler: gcc env: BUILD_TYPE=valgrind - os: osx osx_image: xcode11.4 compiler: gcc env: BUILD_TYPE=normal - os: osx osx_image: xcode11.4 compiler: clang env: BUILD_TYPE=normal - os: osx osx_image: xcode11.4 compiler: clang env: BUILD_TYPE=cmake - os: osx osx_image: xcode11.4 compiler: clang language: objective-c env: BUILD_TYPE=ios install: - if [ "$TRAVIS_OS_NAME" != "osx" ]; then pip install --user cpp-coveralls > /dev/null; fi - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew reinstall libtool > /dev/null; fi before_script: - | if [ "$BUILD_TYPE" = "coverage" ]; then export CONFIG_OPTS="--enable-debug --disable-shared --enable-code-coverage --enable-tests" fi - | if [ "$BUILD_TYPE" = "asan" ]; then export CONFIG_OPTS=--enable-debug export CFLAGS=-fsanitize=address export CXXFLAGS=-fsanitize=address export LDFLAGS=-fsanitize=address fi - | if [ "$BUILD_TYPE" = "lsan" ]; then export CONFIG_OPTS=--enable-debug export CFLAGS=-fsanitize=leak export CXXFLAGS=-fsanitize=leak export LDFLAGS=-fsanitize=leak fi - | if [ "$BUILD_TYPE" = "ubsan" ]; then export CFLAGS="-fsanitize=undefined -fno-sanitize-recover" export LDFLAGS="-fsanitize=undefined" fi - | if [ "$BUILD_TYPE" = "analyze" ]; then export SCAN_WRAP="scan-build-7 --status-bugs" export CONFIG_OPTS="--enable-debug --disable-tests" export CXX="clang++-7" export CC="clang-7" fi - | if [ "$BUILD_TYPE" = "valgrind" ]; then export TEST_WRAP='valgrind --leak-check=full' # Skip container tests as valgrind doesn't cope with clone() export TEST_FILTER="--gtest_filter=-*Container*:-*LiveSearchANY*" fi - | if [ "$BUILD_TYPE" = "ios" ]; then export CONFIG_OPTS="--host=arm-apple-darwin10 --disable-tests" export DEVPATH=`xcode-select -print-path`/Platforms/iPhoneOS.platform/Developer export IOSFLAGS="-isysroot $DEVPATH/SDKs/iPhoneOS.sdk -arch armv7 -miphoneos-version-min=8.0.0" export CFLAGS=$IOSFLAGS export CXXFLAGS=$IOSFLAGS export LDFLAGS=$IOSFLAGS fi script: - ./travis/build.sh && ./travis/test.sh - if [ "$BUILD_TYPE" = "normal" ]; then ./travis/distcheck.sh ; fi - if [ "$BUILD_TYPE" = "coverage" ]; then ./travis/covupload.sh ; fi