# Copyright (C) 2018 Sebastian Pipping # Licensed under the MIT license language: cpp dist: xenial addons: apt: sources: # Clang 7: - llvm-toolchain-trusty-7 - ubuntu-toolchain-r-test packages: - clang-7 - cmake - lzip # Documentation: - doxygen - graphviz - qt4-dev-tools - qtchooser script: - set -e - GTEST_VERSION=1.8.1 ; GTEST_PREFIX=~/.local/ ; wget https://github.com/google/googletest/archive/release-${GTEST_VERSION}.tar.gz && tar xf release-${GTEST_VERSION}.tar.gz && ( cd googletest-release-${GTEST_VERSION}/ && cmake -DBUILD_SHARED_LIBS=ON -DCVF_VERSION=${GTEST_VERSION} -DCMAKE_INSTALL_PREFIX:PATH=${GTEST_PREFIX} . && make && make install ) - mkdir build - pushd build - compile_flags=( -pipe -O1 -g -fsanitize=address -fno-omit-frame-pointer -Wall -Wextra -pedantic ) && CFLAGS="${compile_flags[*]} -std=c89" && CXXFLAGS="${compile_flags[*]} -std=c++98" && LDFLAGS='-g -fsanitize=address' && cmake_args=( -DCMAKE_INSTALL_PREFIX:PATH=${GTEST_PREFIX} -Wdev -Werror=dev -Wdeprecated -Werror=deprecated -DCMAKE_C_COMPILER=clang-7 -DCMAKE_CXX_COMPILER=clang++-7 -DCMAKE_C_FLAGS="${CFLAGS}" -DCMAKE_CXX_FLAGS="${CXXFLAGS}" -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" -DCMAKE_MODULE_LINKER_FLAGS="${LDFLAGS}" -DCMAKE_SHARED_LINKER_FLAGS="${LDFLAGS}" ) && cmake "${cmake_args[@]}" -DCMAKE_INSTALL_INCLUDEDIR=include123 .. # -Werror would fail checks! - make VERBOSE=1 C_FLAGS="${CFLAGS} -fPIC -Werror" CXX_FLAGS="${CXXFLAGS} -Werror" all - make VERBOSE=1 C_FLAGS="${CFLAGS} -fPIC -Werror" CXX_FLAGS="${CXXFLAGS} -Werror" test ARGS=--verbose - cat Testing/Temporary/LastTest.log - make install - ./doc/release.sh - make DESTDIR="${PWD}"/ROOT/ install - find ROOT | sort - popd - pushd cmake/test_find_package - cmake "${cmake_args[@]}" . - make VERBOSE=1 - ./hello - popd - git fetch --tags --unshallow origin # for "git describe" in make-distcheck.sh - ./make-distcheck.sh -DCMAKE_INSTALL_PREFIX:PATH=${GTEST_PREFIX} # without AddressSanitizer - "! git status | fgrep -A100 'Untracked files:' # works best at the very end"