2013-08-05 12:40:33 +02:00
|
|
|
language: cpp
|
2015-10-06 12:28:18 +02:00
|
|
|
sudo: false
|
2013-08-05 12:40:33 +02:00
|
|
|
|
2017-11-05 12:46:04 +01:00
|
|
|
common_sources: &all_sources
|
|
|
|
- ubuntu-toolchain-r-test
|
|
|
|
- llvm-toolchain-trusty
|
|
|
|
- llvm-toolchain-trusty-3.9
|
|
|
|
- llvm-toolchain-trusty-4.0
|
|
|
|
- llvm-toolchain-trusty-5.0
|
|
|
|
|
2015-10-06 12:28:18 +02:00
|
|
|
matrix:
|
|
|
|
include:
|
|
|
|
|
|
|
|
# 1/ Linux Clang Builds
|
|
|
|
- os: linux
|
|
|
|
compiler: clang
|
2017-11-05 12:46:04 +01:00
|
|
|
addons:
|
2015-10-06 12:28:18 +02:00
|
|
|
apt:
|
2017-11-05 12:46:04 +01:00
|
|
|
sources: *all_sources
|
2017-11-25 16:58:29 +01:00
|
|
|
packages: ['valgrind', 'lcov', 'clang-3.5']
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='clang++-3.5' VALGRIND=1
|
2015-10-06 12:28:18 +02:00
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: clang
|
2017-11-05 12:46:04 +01:00
|
|
|
addons:
|
2015-10-06 12:28:18 +02:00
|
|
|
apt:
|
2017-11-05 12:46:04 +01:00
|
|
|
sources: *all_sources
|
2017-11-25 16:58:29 +01:00
|
|
|
packages: ['valgrind', 'lcov', 'clang-3.6']
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='clang++-3.6' VALGRIND=1
|
2015-10-06 12:28:18 +02:00
|
|
|
|
2017-11-05 23:27:11 +01:00
|
|
|
# Travis's containers do not seem to have Clang 3.7 in apt, no matter what sources I add.
|
2017-11-05 12:46:04 +01:00
|
|
|
# - os: linux
|
|
|
|
# compiler: clang
|
|
|
|
# addons:
|
|
|
|
# apt:
|
|
|
|
# sources: *all_sources
|
|
|
|
# packages: ['valgrind', 'clang-3.7']
|
|
|
|
# env: COMPILER='clang++-3.7' VALGRIND=1
|
2015-10-06 12:28:18 +02:00
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: clang
|
2017-11-05 12:46:04 +01:00
|
|
|
addons:
|
2015-10-06 12:28:18 +02:00
|
|
|
apt:
|
2017-11-05 12:46:04 +01:00
|
|
|
sources: *all_sources
|
2017-11-25 16:58:29 +01:00
|
|
|
packages: ['valgrind', 'lcov', 'clang-3.8']
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='clang++-3.8' VALGRIND=1
|
2015-10-06 12:28:18 +02:00
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: clang
|
2017-11-05 12:46:04 +01:00
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
2017-11-25 16:58:29 +01:00
|
|
|
packages: ['clang-3.9', 'valgrind', 'lcov']
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='clang++-3.9' VALGRIND=1
|
2015-10-06 12:28:18 +02:00
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: clang
|
2017-11-05 12:46:04 +01:00
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
2017-11-25 16:58:29 +01:00
|
|
|
packages: ['clang-4.0', 'valgrind', 'lcov']
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='clang++-4.0' VALGRIND=1
|
2015-10-06 12:28:18 +02:00
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: clang
|
2017-11-05 12:46:04 +01:00
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
2017-11-25 16:58:29 +01:00
|
|
|
packages: ['clang-5.0', 'valgrind', 'lcov']
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='clang++-5.0' VALGRIND=1
|
2015-10-06 12:28:18 +02:00
|
|
|
|
|
|
|
# 2/ Linux GCC Builds
|
|
|
|
- os: linux
|
|
|
|
compiler: gcc
|
2017-11-05 12:46:04 +01:00
|
|
|
addons:
|
2015-10-06 12:28:18 +02:00
|
|
|
apt:
|
|
|
|
sources: ['ubuntu-toolchain-r-test']
|
2017-11-25 16:58:29 +01:00
|
|
|
packages: ['valgrind', 'lcov', 'g++-4.8']
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='g++-4.8' VALGRIND=1
|
2015-10-06 12:28:18 +02:00
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: gcc
|
2017-11-05 12:46:04 +01:00
|
|
|
addons:
|
2015-10-06 12:28:18 +02:00
|
|
|
apt:
|
2017-11-05 12:46:04 +01:00
|
|
|
sources: *all_sources
|
2017-11-25 16:58:29 +01:00
|
|
|
packages: ['valgrind', 'lcov', 'g++-4.9']
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='g++-4.9' VALGRIND=1
|
2015-10-06 12:28:18 +02:00
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: gcc
|
2017-11-05 12:46:04 +01:00
|
|
|
addons:
|
2015-10-06 12:28:18 +02:00
|
|
|
apt:
|
2017-11-05 12:46:04 +01:00
|
|
|
sources: *all_sources
|
2017-11-25 16:58:29 +01:00
|
|
|
packages: ['valgrind', 'lcov', 'g++-5']
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='g++-5' VALGRIND=1
|
2017-02-07 11:56:34 +01:00
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: gcc
|
|
|
|
addons: &gcc6
|
|
|
|
apt:
|
2017-11-05 12:46:04 +01:00
|
|
|
sources: *all_sources
|
2017-11-25 16:58:29 +01:00
|
|
|
packages: ['valgrind', 'lcov', 'g++-6']
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='g++-6' VALGRIND=1
|
2017-02-07 11:56:34 +01:00
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: gcc
|
2017-11-05 12:46:04 +01:00
|
|
|
addons: &gcc7
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
2017-11-25 16:58:29 +01:00
|
|
|
packages: ['valgrind', 'lcov', 'g++-7']
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='g++-7' VALGRIND=1
|
|
|
|
|
2017-11-05 12:46:04 +01:00
|
|
|
# 3b/ Linux C++14 Clang builds
|
2017-02-07 11:56:34 +01:00
|
|
|
- os: linux
|
|
|
|
compiler: clang
|
2017-11-05 12:46:04 +01:00
|
|
|
addons:
|
|
|
|
apt:
|
2017-11-25 16:58:29 +01:00
|
|
|
packages: ['clang-3.8', 'valgrind', 'lcov', 'libstdc++-6-dev']
|
2017-11-05 12:46:04 +01:00
|
|
|
sources:
|
|
|
|
- ubuntu-toolchain-r-test
|
|
|
|
- llvm-toolchain-trusty
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='clang++-3.8' CPP14=1 VALGRIND=1
|
2017-02-07 11:56:34 +01:00
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: clang
|
2017-11-05 12:46:04 +01:00
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
2017-11-25 16:58:29 +01:00
|
|
|
packages: ['clang-3.9', 'valgrind', 'lcov', 'libstdc++-6-dev']
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='clang++-3.9' CPP14=1 VALGRIND=1
|
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: clang
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
2017-11-25 16:58:29 +01:00
|
|
|
packages: ['clang-4.0', 'valgrind', 'lcov', 'libstdc++-6-dev']
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='clang++-4.0' CPP14=1 VALGRIND=1
|
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: clang
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
2017-11-25 16:58:29 +01:00
|
|
|
packages: ['clang-5.0', 'valgrind', 'lcov', 'libstdc++-6-dev']
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='clang++-5.0' CPP14=1 VALGRIND=1
|
|
|
|
|
2015-10-06 12:28:18 +02:00
|
|
|
|
2017-04-20 22:47:05 +02:00
|
|
|
# 4a/ Linux C++14 GCC builds
|
|
|
|
- os: linux
|
|
|
|
compiler: gcc
|
2017-04-20 22:50:07 +02:00
|
|
|
addons: *gcc6
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='g++-6' CPP14=1 VALGRIND=1
|
2017-04-20 22:47:05 +02:00
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: gcc
|
2017-11-05 12:46:04 +01:00
|
|
|
addons: *gcc7
|
|
|
|
env: COMPILER='g++-7' CPP14=1 VALGRIND=1
|
2017-04-20 22:47:05 +02:00
|
|
|
|
|
|
|
# 5/ OSX Clang Builds
|
2015-10-06 12:28:18 +02:00
|
|
|
- os: osx
|
2017-02-01 21:01:14 +01:00
|
|
|
osx_image: xcode7.3
|
2015-10-06 12:28:18 +02:00
|
|
|
compiler: clang
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='clang++'
|
2015-10-06 12:28:18 +02:00
|
|
|
|
|
|
|
- os: osx
|
2016-09-27 12:20:33 +02:00
|
|
|
osx_image: xcode8
|
2015-10-06 12:28:18 +02:00
|
|
|
compiler: clang
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='clang++'
|
2015-10-06 12:28:18 +02:00
|
|
|
|
|
|
|
- os: osx
|
2017-11-05 12:46:04 +01:00
|
|
|
osx_image: xcode9
|
2015-10-06 12:28:18 +02:00
|
|
|
compiler: clang
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='clang++'
|
2015-10-06 12:28:18 +02:00
|
|
|
|
2017-04-20 22:52:41 +02:00
|
|
|
- os: osx
|
2017-11-05 12:46:04 +01:00
|
|
|
osx_image: xcode9.1
|
2017-04-20 22:52:41 +02:00
|
|
|
compiler: clang
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='clang++'
|
2017-04-20 22:52:41 +02:00
|
|
|
|
|
|
|
- os: osx
|
2017-11-05 12:46:04 +01:00
|
|
|
osx_image: xcode9.1
|
2017-04-20 22:52:41 +02:00
|
|
|
compiler: clang
|
2017-11-05 12:46:04 +01:00
|
|
|
env: COMPILER='clang++' USE_CPP14=1
|
2013-08-05 12:40:33 +02:00
|
|
|
|
2017-11-25 16:58:29 +01:00
|
|
|
|
2013-08-05 12:40:33 +02:00
|
|
|
install:
|
2015-10-06 12:28:18 +02:00
|
|
|
- DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
|
|
|
|
- mkdir -p ${DEPS_DIR} && cd ${DEPS_DIR}
|
|
|
|
- |
|
|
|
|
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
|
|
|
|
CMAKE_URL="http://www.cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz"
|
2017-02-01 21:01:14 +01:00
|
|
|
mkdir cmake && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake
|
2015-10-06 12:28:18 +02:00
|
|
|
export PATH=${DEPS_DIR}/cmake/bin:${PATH}
|
|
|
|
elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
|
2017-11-25 16:58:29 +01:00
|
|
|
for pkg in cmake lcov; do
|
|
|
|
if brew list -1 | grep -q "^${pkg}\$"; then
|
|
|
|
brew outdated $pkg || brew upgrade $pkg;
|
|
|
|
else
|
|
|
|
brew install $pkg;
|
|
|
|
fi
|
|
|
|
done
|
2015-10-06 12:28:18 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
before_script:
|
|
|
|
- export CXX=${COMPILER}
|
|
|
|
- cd ${TRAVIS_BUILD_DIR}
|
2017-11-19 15:04:51 +01:00
|
|
|
# Regenerate single header file, so it is tested in the examples...
|
|
|
|
- python scripts/generateSingleHeader.py
|
|
|
|
|
2017-11-25 16:58:29 +01:00
|
|
|
- |
|
|
|
|
# Use Debug builds for running Valgrind and building examples
|
|
|
|
cmake -H. -BBuild-Debug -DCMAKE_BUILD_TYPE=Debug -Wdev -DUSE_CPP14=${CPP14} -DUSE_VALGRIND=${VALGRIND} -DBUILD_EXAMPLES=ON -DENABLE_COVERAGE=ON
|
|
|
|
# Don't bother with release build for coverage build
|
|
|
|
cmake -H. -BBuild-Release -DCMAKE_BUILD_TYPE=Release -Wdev -DUSE_CPP14=${CPP14}
|
|
|
|
|
2013-08-05 12:40:33 +02:00
|
|
|
|
|
|
|
script:
|
2017-11-25 16:58:29 +01:00
|
|
|
- |
|
|
|
|
cd Build-Debug
|
|
|
|
make -j 2
|
|
|
|
CTEST_OUTPUT_ON_FAILURE=1 ctest -j 2
|
|
|
|
# Coverage collection does not work for OS X atm
|
|
|
|
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
|
|
|
|
make gcov
|
|
|
|
make lcov
|
|
|
|
bash <(curl -s https://codecov.io/bash) -X gcov || echo "Codecov did not collect coverage reports"
|
|
|
|
fi
|
|
|
|
# Go to release build
|
|
|
|
cd ../Build-Release
|
|
|
|
make -j 2
|
|
|
|
CTEST_OUTPUT_ON_FAILURE=1 ctest -j 2
|