diff options
Diffstat (limited to '.travis.yml')
-rw-r--r-- | .travis.yml | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..a92ac8b --- /dev/null +++ b/.travis.yml @@ -0,0 +1,86 @@ +# Copyright (C) 2018 Sebastian Pipping <sebastian@pipping.org> +# 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" |