2019-03-26 09:56:43 +00:00
|
|
|
os: linux # Use linux unless specified otherwise.
|
2019-03-12 13:55:45 +00:00
|
|
|
dist: xenial
|
2018-03-27 09:03:12 +00:00
|
|
|
sudo: required
|
|
|
|
|
|
|
|
language: cpp
|
|
|
|
|
2018-04-27 19:50:44 +00:00
|
|
|
git:
|
|
|
|
depth: 1
|
|
|
|
|
|
|
|
matrix:
|
2018-04-30 03:00:05 +00:00
|
|
|
include:
|
|
|
|
- os: linux
|
|
|
|
compiler: g++
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources:
|
|
|
|
- ubuntu-toolchain-r-test
|
|
|
|
packages:
|
|
|
|
- g++-7
|
|
|
|
env:
|
2018-09-04 14:41:01 +00:00
|
|
|
- CXX_COMPILER=g++-7 CC_COMPILER=gcc-7
|
2018-04-30 03:00:05 +00:00
|
|
|
|
2018-05-25 14:07:50 +00:00
|
|
|
- os: linux
|
|
|
|
compiler: g++
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources:
|
|
|
|
- ubuntu-toolchain-r-test
|
|
|
|
packages:
|
|
|
|
- g++-8
|
|
|
|
env:
|
2018-09-04 14:41:01 +00:00
|
|
|
- CXX_COMPILER=g++-8 CC_COMPILER=gcc-8
|
2018-05-25 14:07:50 +00:00
|
|
|
|
2019-03-26 06:58:07 +00:00
|
|
|
- os: linux
|
|
|
|
compiler: g++
|
2019-05-25 16:16:33 +00:00
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources:
|
|
|
|
- ubuntu-toolchain-r-test
|
|
|
|
packages:
|
|
|
|
- g++-9
|
2019-03-26 06:58:07 +00:00
|
|
|
env:
|
|
|
|
- CXX_COMPILER=g++-9 CC_COMPILER=gcc-9
|
|
|
|
|
2018-04-30 03:00:05 +00:00
|
|
|
- os: linux
|
|
|
|
compiler: clang++
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources:
|
|
|
|
- ubuntu-toolchain-r-test
|
2019-03-12 13:55:45 +00:00
|
|
|
- llvm-toolchain-xenial-5.0
|
2018-04-30 03:00:05 +00:00
|
|
|
packages:
|
|
|
|
- clang-5.0
|
|
|
|
env:
|
2018-09-04 14:41:01 +00:00
|
|
|
- CXX_COMPILER=clang++-5.0 CC_COMPILER=clang-5.0
|
2018-04-30 03:00:05 +00:00
|
|
|
|
|
|
|
- os: linux
|
|
|
|
compiler: clang++
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources:
|
|
|
|
- ubuntu-toolchain-r-test
|
2019-03-12 13:55:45 +00:00
|
|
|
- llvm-toolchain-xenial-6.0
|
2018-04-30 03:00:05 +00:00
|
|
|
packages:
|
|
|
|
- clang-6.0
|
|
|
|
env:
|
2018-09-04 14:41:01 +00:00
|
|
|
- CXX_COMPILER=clang++-6.0 CC_COMPILER=clang-6.0
|
2018-04-30 03:00:05 +00:00
|
|
|
|
2018-11-28 14:58:27 +00:00
|
|
|
- os: linux
|
2018-04-30 03:00:05 +00:00
|
|
|
compiler: clang++
|
2018-11-28 14:58:27 +00:00
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources:
|
|
|
|
- ubuntu-toolchain-r-test
|
2019-03-12 13:55:45 +00:00
|
|
|
- llvm-toolchain-xenial-7
|
2018-11-28 14:58:27 +00:00
|
|
|
packages:
|
|
|
|
- clang-7
|
2018-04-30 03:00:05 +00:00
|
|
|
env:
|
2018-11-28 14:58:27 +00:00
|
|
|
- CXX_COMPILER=clang++-7 CC_COMPILER=clang-7
|
2018-04-30 03:00:05 +00:00
|
|
|
|
2019-03-26 09:56:43 +00:00
|
|
|
- os: linux
|
|
|
|
compiler: clang++
|
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
sources:
|
|
|
|
- ubuntu-toolchain-r-test
|
|
|
|
- llvm-toolchain-xenial-8
|
|
|
|
packages:
|
|
|
|
- clang-8
|
|
|
|
env:
|
|
|
|
- CXX_COMPILER=clang++-8 CC_COMPILER=clang-8
|
|
|
|
|
2018-04-30 03:00:05 +00:00
|
|
|
- os: osx
|
|
|
|
compiler: clang++
|
2018-12-05 10:56:01 +00:00
|
|
|
osx_image: xcode9.4
|
2018-04-30 03:00:05 +00:00
|
|
|
env:
|
2018-09-04 14:41:01 +00:00
|
|
|
- CXX_COMPILER=clang++ CC_COMPILER=clang
|
2018-03-27 09:03:12 +00:00
|
|
|
|
2018-08-07 16:34:56 +00:00
|
|
|
- os: osx
|
|
|
|
compiler: clang++
|
2019-04-01 18:32:41 +00:00
|
|
|
osx_image: xcode10.2
|
2018-08-07 16:34:56 +00:00
|
|
|
env:
|
2018-09-04 14:41:01 +00:00
|
|
|
- CXX_COMPILER=clang++ CC_COMPILER=clang
|
2018-08-07 16:34:56 +00:00
|
|
|
|
2018-04-30 03:00:05 +00:00
|
|
|
install:
|
2018-05-25 14:07:50 +00:00
|
|
|
- export CC=${CC_COMPILER}
|
|
|
|
- export CXX=${CXX_COMPILER}
|
|
|
|
- JOBS=2 # Travis machines have 2 cores.
|
2018-08-07 16:34:56 +00:00
|
|
|
- |
|
2019-07-27 17:56:00 +00:00
|
|
|
# getting Catch2 library
|
|
|
|
git clone https://github.com/catchorg/Catch2.git
|
|
|
|
cd Catch2
|
|
|
|
git checkout v2.9.1
|
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
pwd
|
|
|
|
cmake -DCATCH_BUILD_TESTING=OFF -DCATCH_INSTALL_DOCS=OFF -DCATCH_INSTALL_HELPERS=OFF -DCMAKE_INSTALL_PREFIX=../installed ..
|
|
|
|
cmake --build . --target install --config Release
|
|
|
|
cd ../..
|
|
|
|
|
2018-08-07 16:34:56 +00:00
|
|
|
# If linux and clang install the right version of libc++.
|
|
|
|
if [[ "${TRAVIS_OS_NAME}" == "linux" && "${CXX%%+*}" == "clang" && -n "$(ls -A ${LLVM_INSTALL})" ]]; then
|
|
|
|
LLVM_INSTALL=${DEPS_DIR}/llvm/install
|
2018-08-07 19:56:14 +00:00
|
|
|
if [[ "${CXX}" == "clang++-3.5" ]]; then LLVM_VERSION="3.5.2";
|
2018-08-07 16:34:56 +00:00
|
|
|
elif [[ "${CXX}" == "clang++-3.6" ]]; then LLVM_VERSION="3.6.2";
|
|
|
|
elif [[ "${CXX}" == "clang++-3.7" ]]; then LLVM_VERSION="3.7.1";
|
|
|
|
elif [[ "${CXX}" == "clang++-3.8" ]]; then LLVM_VERSION="3.8.1";
|
|
|
|
elif [[ "${CXX}" == "clang++-3.9" ]]; then LLVM_VERSION="3.9.1";
|
|
|
|
elif [[ "${CXX}" == "clang++-4.0" ]]; then LLVM_VERSION="4.0.1";
|
|
|
|
elif [[ "${CXX}" == "clang++-5.0" ]]; then LLVM_VERSION="5.0.2";
|
|
|
|
elif [[ "${CXX}" == "clang++-6.0" ]]; then LLVM_VERSION="6.0.1";
|
2019-03-12 13:55:45 +00:00
|
|
|
elif [[ "${CXX}" == "clang++-7" ]]; then LLVM_VERSION="7.0.1";
|
2019-03-26 09:56:43 +00:00
|
|
|
elif [[ "${CXX}" == "clang++-8" ]]; then LLVM_VERSION="8.0.0";
|
2018-08-07 16:34:56 +00:00
|
|
|
fi
|
|
|
|
LLVM_URL="http://llvm.org/releases/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz"
|
|
|
|
LIBCXX_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxx-${LLVM_VERSION}.src.tar.xz"
|
|
|
|
LIBCXXABI_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxxabi-${LLVM_VERSION}.src.tar.xz"
|
|
|
|
mkdir -p llvm llvm/build llvm/projects/libcxx llvm/projects/libcxxabi
|
|
|
|
travis_retry wget -O - ${LLVM_URL} | tar --strip-components=1 -xJ -C llvm
|
|
|
|
travis_retry wget -O - ${LIBCXX_URL} | tar --strip-components=1 -xJ -C llvm/projects/libcxx
|
|
|
|
travis_retry wget -O - ${LIBCXXABI_URL} | tar --strip-components=1 -xJ -C llvm/projects/libcxxabi
|
|
|
|
(cd llvm/build && cmake .. -DCMAKE_INSTALL_PREFIX=${LLVM_INSTALL})
|
2018-08-07 19:56:14 +00:00
|
|
|
(cd llvm/build/projects/libcxx && sudo make install -j${JOBS})
|
|
|
|
(cd llvm/build/projects/libcxxabi && sudo make install -j${JOBS})
|
2018-08-07 16:34:56 +00:00
|
|
|
export CXXFLAGS="-isystem ${LLVM_INSTALL}/include/c++/v1"
|
|
|
|
export LDFLAGS="-L ${LLVM_INSTALL}/lib -l c++ -l c++abi"
|
|
|
|
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${LLVM_INSTALL}/lib"
|
|
|
|
fi
|
2019-03-26 07:03:53 +00:00
|
|
|
|
2018-05-25 14:07:50 +00:00
|
|
|
before_script:
|
2018-04-05 21:30:39 +00:00
|
|
|
- rm -rf build
|
2018-04-02 11:33:25 +00:00
|
|
|
- mkdir -p build
|
2018-03-27 09:03:12 +00:00
|
|
|
- cd build
|
2019-07-27 17:56:00 +00:00
|
|
|
- pwd
|
|
|
|
- cmake -G "Unix Makefiles" -DCMAKE_PREFIX_PATH=../Catch2/installed ..
|
2018-05-25 14:07:50 +00:00
|
|
|
|
|
|
|
script:
|
2018-09-04 14:41:01 +00:00
|
|
|
- cmake --build . -- -j${JOBS}
|
|
|
|
- ctest --output-on-failure -j${JOBS}
|
2018-04-01 09:02:15 +00:00
|
|
|
|
|
|
|
notifications:
|
2018-04-14 19:52:48 +00:00
|
|
|
email: false
|