From 3bdc41ab5cda7d584e16dbae5178fd5426502c95 Mon Sep 17 00:00:00 2001 From: Paul Dreik Date: Mon, 27 Jun 2016 09:29:22 +0200 Subject: [PATCH] build with several compilers - multiple versions of gcc - multiple versions of c++ standard - multiple versions of clang - os x --- .travis.yml | 126 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 117 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 06c0c92..7c9586d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,20 +1,125 @@ # Copyright (c) 2012-2016 Sebastien Rombauts (sebastien.rombauts@gmail.com) -language: cpp -# compilers to add to build matrix -compiler: - - gcc - - clang # request for Ubuntu 14.04 Trusty VM sudo: true dist: trusty +language: cpp + +cache: + apt: true + +matrix: + include: + # gcc default + - env: COMPILERXX=g++ + # clang default + - env: COMPILERXX=clang++ + # clang 3.8 + - os: linux + env: + - COMPILERXX=clang++ + - LLVM_VERSION=3.8.0 + - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz + - COMPILER=clang++ + - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1" + - CXXFLAGS=-lc++ + - PATH=$HOME/clang-$LLVM_VERSION/bin:$PATH + - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH + before_install: + - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH + - mkdir $HOME/clang-$LLVM_VERSION + - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1 + # gcc 4.9 std=default + - addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-4.9 + env: COMPILERXX=g++-4.9 + # gcc 5 std=c++03 + - addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-5 + env: + - COMPILERXX=g++-5 + - CXXFLAGS="-std=c++03" + # gcc 5 std=c++11 + - addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-5 + env: + - COMPILERXX=g++-5 + - CXXFLAGS="-std=c++11" + # gcc 5 std=c++14 + - addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-5 + env: + - COMPILERXX=g++-5 + - CXXFLAGS="-std=c++14" + # gcc 5 std=c++1z + - addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-5 + env: + - COMPILERXX=g++-5 + - CXXFLAGS="-std=c++1z" + # gcc 6 std=c++14 + - addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-6 + env: + - COMPILERXX=g++-6 + - CXXFLAGS="-std=c++14" + # gcc 6 std=c++1z + - addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-6 + env: + - COMPILERXX=g++-6 + - CXXFLAGS="-std=c++1z" + # gcc 6 std=c++14 all warnings, pedantic + - addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-6 + env: + - COMPILERXX=g++-6 + - CXXFLAGS="-std=c++14 -Wall -Wextra -pedantic" + # os x + - os: osx + osx_image: xcode8 + compiler: clang + install: + - brew install cmake + env: + - COMPILER=clang + - COMPILERXX=clang + - CXXFLAGS=-lstdc++ -addons: - apt: - packages: - - cppcheck before_install: - if [[ "$CXX" == "g++" ]]; then pip install --user cpp-coveralls ; fi @@ -23,6 +128,9 @@ before_install: before_script: - mkdir build - cd build + - export CXX=$COMPILERXX + - echo CXX is $CXX CXXFLAGS is $CXXFLAGS CPPFLAGS is $CPPFLAGS + - $CXX --version - cmake -DCMAKE_BUILD_TYPE=Debug -DSQLITECPP_USE_GCOV=ON -DSQLITECPP_BUILD_EXAMPLES=ON -DSQLITECPP_BUILD_TESTS=ON .. # build examples, and run tests (ie make & make test)