2013-08-05 12:40:33 +02:00
|
|
|
language: cpp
|
|
|
|
|
2018-03-07 10:13:04 +01:00
|
|
|
branches:
|
|
|
|
except:
|
|
|
|
- /dev-appveyor.*/
|
|
|
|
|
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
|
2019-09-06 11:14:48 +02:00
|
|
|
- llvm-toolchain-xenial-5.0
|
|
|
|
- llvm-toolchain-xenial-6.0
|
2017-11-05 12:46:04 +01:00
|
|
|
|
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
|
2018-03-06 15:38:22 +01:00
|
|
|
packages: ['clang-3.5']
|
2018-03-05 15:11:12 +01:00
|
|
|
env: COMPILER='clang++-3.5'
|
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
|
2018-03-06 15:38:22 +01:00
|
|
|
packages: ['clang-3.6']
|
2018-03-05 15:11:12 +01:00
|
|
|
env: COMPILER='clang++-3.6'
|
2015-10-06 12:28:18 +02:00
|
|
|
|
2018-03-05 15:11:12 +01:00
|
|
|
# Clang 3.7 is intentionally skipped as we cannot get it easily on
|
|
|
|
# TravisCI container
|
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
|
2018-03-05 15:11:12 +01:00
|
|
|
packages: ['lcov', 'clang-3.8']
|
|
|
|
env: COMPILER='clang++-3.8'
|
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
|
2018-03-06 15:38:22 +01:00
|
|
|
packages: ['clang-3.9']
|
2018-03-05 15:11:12 +01:00
|
|
|
env: COMPILER='clang++-3.9'
|
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
|
2018-03-06 15:38:22 +01:00
|
|
|
packages: ['clang-4.0']
|
2018-03-05 15:11:12 +01:00
|
|
|
env: COMPILER='clang++-4.0'
|
2015-10-06 12:28:18 +02:00
|
|
|
|
|
|
|
- os: linux
|
2019-09-06 11:14:48 +02:00
|
|
|
dist: xenial
|
2015-10-06 12:28:18 +02:00
|
|
|
compiler: clang
|
2017-11-05 12:46:04 +01:00
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
2018-03-06 15:38:22 +01:00
|
|
|
packages: ['clang-5.0']
|
2018-03-05 15:11:12 +01:00
|
|
|
env: COMPILER='clang++-5.0'
|
2015-10-06 12:28:18 +02:00
|
|
|
|
2018-05-05 11:07:36 +02:00
|
|
|
- os: linux
|
2019-09-06 11:14:48 +02:00
|
|
|
dist: xenial
|
2018-05-05 11:07:36 +02:00
|
|
|
compiler: clang
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
|
|
|
packages: ['clang-6.0']
|
|
|
|
env: COMPILER='clang++-6.0'
|
|
|
|
|
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:
|
2018-03-05 15:11:12 +01:00
|
|
|
sources: *all_sources
|
2018-03-06 15:38:22 +01:00
|
|
|
packages: ['g++-4.8']
|
2018-03-05 15:11:12 +01:00
|
|
|
env: COMPILER='g++-4.8'
|
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
|
2018-03-06 15:38:22 +01:00
|
|
|
packages: ['g++-4.9']
|
2018-03-05 15:11:12 +01:00
|
|
|
env: COMPILER='g++-4.9'
|
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
|
2018-03-06 15:38:22 +01:00
|
|
|
packages: ['g++-5']
|
2018-03-05 15:11:12 +01:00
|
|
|
env: COMPILER='g++-5'
|
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
|
2018-03-06 15:38:22 +01:00
|
|
|
packages: ['g++-6']
|
2018-03-05 15:11:12 +01:00
|
|
|
env: COMPILER='g++-6'
|
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
|
2018-03-06 15:38:22 +01:00
|
|
|
packages: ['g++-7']
|
2018-03-05 15:11:12 +01:00
|
|
|
env: COMPILER='g++-7'
|
2017-11-05 12:46:04 +01:00
|
|
|
|
2018-05-05 10:39:55 +02:00
|
|
|
- os: linux
|
|
|
|
compiler: gcc
|
|
|
|
addons: &gcc8
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
|
|
|
packages: ['g++-8']
|
|
|
|
env: COMPILER='g++-8'
|
|
|
|
|
2017-11-05 12:46:04 +01:00
|
|
|
# 3b/ Linux C++14 Clang builds
|
2018-03-05 15:11:12 +01:00
|
|
|
# Note that we need newer libstdc++ for C++14 support
|
2017-02-07 11:56:34 +01:00
|
|
|
- os: linux
|
|
|
|
compiler: clang
|
2017-11-05 12:46:04 +01:00
|
|
|
addons:
|
|
|
|
apt:
|
2018-03-06 15:38:22 +01:00
|
|
|
packages: ['clang-3.8', 'libstdc++-6-dev']
|
2017-11-05 12:46:04 +01:00
|
|
|
sources:
|
|
|
|
- ubuntu-toolchain-r-test
|
|
|
|
- llvm-toolchain-trusty
|
2018-03-05 15:11:12 +01:00
|
|
|
env: COMPILER='clang++-3.8' CPP14=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
|
2018-03-06 15:38:22 +01:00
|
|
|
packages: ['clang-3.9', 'libstdc++-6-dev']
|
2018-03-05 15:11:12 +01:00
|
|
|
env: COMPILER='clang++-3.9' CPP14=1
|
2017-11-05 12:46:04 +01:00
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: clang
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
2018-03-06 15:38:22 +01:00
|
|
|
packages: ['clang-4.0', 'libstdc++-6-dev']
|
2018-03-05 15:11:12 +01:00
|
|
|
env: COMPILER='clang++-4.0' CPP14=1
|
2017-11-05 12:46:04 +01:00
|
|
|
|
|
|
|
- os: linux
|
2019-09-06 11:14:48 +02:00
|
|
|
dist: xenial
|
2017-11-05 12:46:04 +01:00
|
|
|
compiler: clang
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
2018-03-06 15:38:22 +01:00
|
|
|
packages: ['clang-5.0', 'libstdc++-6-dev']
|
2018-03-05 15:11:12 +01:00
|
|
|
env: COMPILER='clang++-5.0' CPP14=1
|
2017-11-05 12:46:04 +01:00
|
|
|
|
2018-05-05 11:07:36 +02:00
|
|
|
- os: linux
|
2019-09-06 11:14:48 +02:00
|
|
|
dist: xenial
|
2018-05-05 11:07:36 +02:00
|
|
|
compiler: clang
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
|
|
|
packages: ['clang-6.0', 'libstdc++-6-dev']
|
|
|
|
env: COMPILER='clang++-6.0' CPP14=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
|
2018-03-05 15:11:12 +01:00
|
|
|
env: COMPILER='g++-6' CPP14=1
|
2017-04-20 22:47:05 +02:00
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: gcc
|
2017-11-05 12:46:04 +01:00
|
|
|
addons: *gcc7
|
2018-03-05 15:11:12 +01:00
|
|
|
env: COMPILER='g++-7' CPP14=1
|
2017-04-20 22:47:05 +02:00
|
|
|
|
2018-05-05 10:39:55 +02:00
|
|
|
- os: linux
|
|
|
|
compiler: gcc
|
|
|
|
addons: *gcc8
|
|
|
|
env: COMPILER='g++-8' CPP14=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
|
2018-03-05 15:09:25 +01:00
|
|
|
env: COMPILER='clang++' CPP14=1
|
2013-08-05 12:40:33 +02:00
|
|
|
|
2018-03-05 15:11:12 +01:00
|
|
|
# 6/ Special builds -- examples, coverage, valgrind, etc.
|
|
|
|
- os: linux
|
|
|
|
compiler: gcc
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
|
|
|
packages: ['lcov', 'g++-7']
|
2018-08-28 09:44:47 +02:00
|
|
|
env: COMPILER='g++-7' CPP14=1 EXAMPLES=1 COVERAGE=1 EXTRAS=1
|
2018-03-05 15:11:12 +01:00
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: clang
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
packages: ['clang-3.8', 'lcov']
|
|
|
|
sources:
|
|
|
|
- ubuntu-toolchain-r-test
|
|
|
|
- llvm-toolchain-trusty
|
2018-08-28 09:44:47 +02:00
|
|
|
env: COMPILER='clang++-3.8' EXAMPLES=1 COVERAGE=1 EXTRAS=1
|
2018-03-05 15:11:12 +01:00
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: gcc
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
|
|
|
packages: ['valgrind', 'lcov', 'g++-7']
|
2018-09-09 22:08:26 +02:00
|
|
|
env: COMPILER='g++-7' CPP14=1 VALGRIND=1
|
|
|
|
|
2018-03-05 15:11:12 +01:00
|
|
|
- os: osx
|
|
|
|
osx_image: xcode9.1
|
|
|
|
compiler: clang
|
2018-08-28 09:44:47 +02:00
|
|
|
env: COMPILER='clang++' CPP14=1 EXAMPLES=1 COVERAGE=1 EXTRAS=1
|
2017-11-25 16:58:29 +01:00
|
|
|
|
2018-09-09 22:08:26 +02:00
|
|
|
# 7/ C++17 builds
|
|
|
|
- os: linux
|
|
|
|
compiler: gcc
|
|
|
|
addons: *gcc7
|
|
|
|
env: COMPILER='g++-7' CPP17=1
|
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: gcc
|
|
|
|
addons: *gcc7
|
|
|
|
env: COMPILER='g++-7' EXAMPLES=1 COVERAGE=1 EXTRAS=1 CPP17=1
|
|
|
|
|
|
|
|
- os: linux
|
2019-09-06 11:14:48 +02:00
|
|
|
dist: xenial
|
2018-09-09 22:08:26 +02:00
|
|
|
compiler: clang
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
2018-09-20 14:13:35 +02:00
|
|
|
packages: ['clang-6.0', 'libstdc++-8-dev']
|
2018-09-09 22:08:26 +02:00
|
|
|
env: COMPILER='clang++-6.0' CPP17=1
|
|
|
|
|
|
|
|
- os: linux
|
2019-09-06 11:14:48 +02:00
|
|
|
dist: xenial
|
2018-09-09 22:08:26 +02:00
|
|
|
compiler: clang
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources: *all_sources
|
2018-09-20 14:13:35 +02:00
|
|
|
packages: ['clang-6.0', 'libstdc++-8-dev']
|
2018-09-09 22:08:26 +02:00
|
|
|
env: COMPILER='clang++-6.0' CPP17=1 EXAMPLES=1 COVERAGE=1 EXTRAS=1
|
|
|
|
|
2018-11-16 12:45:07 +01:00
|
|
|
# 8/ Conan
|
|
|
|
- language: python
|
|
|
|
python:
|
|
|
|
- "3.7"
|
|
|
|
dist: xenial
|
|
|
|
install:
|
2019-10-02 23:17:46 +02:00
|
|
|
- pip install conan-package-tools
|
2018-11-16 12:45:07 +01:00
|
|
|
env:
|
|
|
|
- CONAN_GCC_VERSIONS=8
|
|
|
|
- CONAN_DOCKER_IMAGE=conanio/gcc8
|
|
|
|
script:
|
|
|
|
- python .conan/build.py
|
|
|
|
|
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
|
2018-09-09 22:08:26 +02:00
|
|
|
CMAKE_URL="http://cmake.org/files/v3.8/cmake-3.8.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-27 22:34:44 +01:00
|
|
|
which cmake || brew install cmake;
|
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
|
|
|
|
|
2019-05-05 00:23:53 +02:00
|
|
|
- |
|
|
|
|
if [[ ${CPP17} -eq 1 ]]; then
|
|
|
|
export CPP_STANDARD=17
|
|
|
|
elif [[ ${CPP14} -eq 1 ]]; then
|
|
|
|
export CPP_STANDARD=14
|
|
|
|
else
|
|
|
|
export CPP_STANDARD=11
|
|
|
|
fi
|
|
|
|
|
2017-11-25 16:58:29 +01:00
|
|
|
# Use Debug builds for running Valgrind and building examples
|
2019-05-05 00:23:53 +02:00
|
|
|
- cmake -H. -BBuild-Debug -DCMAKE_BUILD_TYPE=Debug -Wdev -DCATCH_USE_VALGRIND=${VALGRIND} -DCATCH_BUILD_EXAMPLES=${EXAMPLES} -DCATCH_ENABLE_COVERAGE=${COVERAGE} -DCATCH_BUILD_EXTRA_TESTS=${EXTRAS} -DCMAKE_CXX_STANDARD=${CPP_STANDARD} -DCMAKE_CXX_STANDARD_REQUIRED=On -DCMAKE_CXX_EXTENSIONS=OFF
|
2017-11-25 16:58:29 +01:00
|
|
|
# Don't bother with release build for coverage build
|
2019-05-05 00:23:53 +02:00
|
|
|
- cmake -H. -BBuild-Release -DCMAKE_BUILD_TYPE=Release -Wdev -DCMAKE_CXX_STANDARD=${CPP_STANDARD} -DCMAKE_CXX_STANDARD_REQUIRED=On -DCMAKE_CXX_EXTENSIONS=OFF
|
2017-11-25 16:58:29 +01:00
|
|
|
|
2013-08-05 12:40:33 +02:00
|
|
|
|
|
|
|
script:
|
2018-04-01 14:36:55 +02:00
|
|
|
- cd Build-Debug
|
|
|
|
- make -j 2
|
|
|
|
- CTEST_OUTPUT_ON_FAILURE=1 ctest -j 2
|
2017-11-25 16:58:29 +01:00
|
|
|
# Coverage collection does not work for OS X atm
|
2018-04-01 14:36:55 +02:00
|
|
|
- |
|
2018-03-05 15:11:12 +01:00
|
|
|
if [[ "${TRAVIS_OS_NAME}" == "linux" ]] && [[ "${COVERAGE}" == "1" ]]; then
|
2017-11-25 16:58:29 +01:00
|
|
|
make gcov
|
|
|
|
make lcov
|
|
|
|
bash <(curl -s https://codecov.io/bash) -X gcov || echo "Codecov did not collect coverage reports"
|
|
|
|
fi
|
2018-04-01 14:36:55 +02:00
|
|
|
- # Go to release build
|
|
|
|
- cd ../Build-Release
|
|
|
|
- make -j 2
|
|
|
|
- CTEST_OUTPUT_ON_FAILURE=1 ctest -j 2
|