diff --git a/.travis.yml b/.travis.yml index 86fb974..538d312 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,244 +1,92 @@ # Copyright (c) 2012-2020 Sebastien Rombauts (sebastien.rombauts@gmail.com) -# request for Ubuntu 14.04 Trusty VM -sudo: true -dist: trusty +language: cpp +sudo: false + +# Use Linux unless specified otherwise +os: linux cache: apt: true -# NOTE: no language, so that we can set CXX and CC env vars as required -#language: cpp - matrix: include: - # gcc default (4.8) - - compiler: gcc + + ########################################################################## + # GCC on Linux + ########################################################################## + + - dist: bionic env: - - CC=gcc - - CXX=g++ - - CXXFLAGS="-Wall -Wextra -pedantic" - # gcc 4.9 std=default - - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-4.9 + - cc=gcc + - cxx=g++ + - CXXFLAGS="" + - COVERALLS=true + + + - dist: xenial env: - - CC=gcc-4.9 - - CXX=g++-4.9 - - CXXFLAGS="-Wall -Wextra -pedantic" - # gcc 5 std=c++03 - - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-5 + - cc=gcc + - cxx=g++ + - CXXFLAGS="" + + - dist: trusty env: - - CC=gcc-5 - - CXX=g++-5 - - CXXFLAGS="-std=c++03 -Wall -Wextra -pedantic" - # gcc 5 std=c++11 - - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-5 + - cc=gcc + - cxx=g++ + - CXXFLAGS="" + + ########################################################################## + # Clang on Linux + ########################################################################## + + - dist: bionic env: - - CC=gcc-5 - - CXX=g++-5 - - CXXFLAGS="-std=c++11 -Wall -Wextra -pedantic" - # gcc 5 default - - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-5 + - cc=clang + - cxx=clang++ + - CXXFLAGS="" + + - dist: xenial env: - - CC=gcc-5 - - CXX=g++-5 - - CXXFLAGS="-Wall -Wextra -pedantic" - # gcc 5 std=c++11 - - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-5 + - cc=clang + - cxx=clang++ + - CXXFLAGS="" + + - dist: trusty env: - - CC=gcc-5 - - CXX=g++-5 - - CXXFLAGS="-std=c++11 -Wall -Wextra -pedantic" - # gcc 5 std=c++14 - - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-5 + - cc=clang + - cxx=clang++ + - CXXFLAGS="" + + ########################################################################## + # Clang on OSX + ########################################################################## + + # Latest XCode + - os: osx env: - - CC=gcc-5 - - CXX=g++-5 - - CXXFLAGS="-std=c++14 -Wall -Wextra -pedantic" - # gcc 5 std=c++1z - - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-5 + - cc=clang + - cxx=clang++ + - CXXFLAGS="" + + # XCode 8.3 + - os: osx + osx_image: xcode8.3 env: - - CC=gcc-5 - - CXX=g++-5 - - CXXFLAGS="-std=c++1z -Wall -Wextra -pedantic" - # gcc 6.5 std=c++14 (default standard) - - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-6 - env: - - CC=gcc-6 - - CXX=g++-6 - - CXXFLAGS="-std=c++14 -Wall -Wextra -pedantic" - # gcc 6.5 std=c++1z - - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-6 - env: - - CC=gcc-6 - - CXX=g++-6 - - CXXFLAGS="-std=c++1z -Wall -Wextra -pedantic" - # gcc 7.4 std=c++14 (default standard) - - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-7 - env: - - CC=gcc-7 - - CXX=g++-7 - - CXXFLAGS="-std=c++14 -Wall -Wextra -pedantic" - # gcc 7.4 std=c++17 - - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-7 - env: - - CC=gcc-7 - - CXX=g++-7 - - CXXFLAGS="-std=c++17 -Wall -Wextra -pedantic" - # gcc 8 std=c++14 (default standard) - - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-8 - env: - - CC=gcc-8 - - CXX=g++-8 - - CXXFLAGS="-std=c++14 -Wall -Wextra -pedantic" - # gcc 8 std=c++17 - - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-8 - env: - - CC=gcc-8 - - CXX=g++-8 - - CXXFLAGS="-std=c++17 -Wall -Wextra -pedantic" - # gcc 8 std=c++2a - - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-8 - env: - - CC=gcc-8 - - CXX=g++-8 - - CXXFLAGS="-std=c++2a -Wall -Wextra -pedantic" - # gcc 9 std=c++14 (default standard) - - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-9 - env: - - CC=gcc-9 - - CXX=g++-9 - - CXXFLAGS="-std=c++14 -Wall -Wextra -pedantic" -# TODO: issue with ExecuteMany and Bind helper function -# # gcc 9 std=c++17 -# - compiler: gcc -# addons: -# apt: -# sources: -# - ubuntu-toolchain-r-test -# packages: -# - g++-9 -# env: -# - CC=gcc-9 -# - CXX=g++-9 -# - CXXFLAGS="-std=c++17 -Wall -Wextra -pedantic" -# # gcc 9 std=c++2a -# - compiler: gcc -# addons: -# apt: -# sources: -# - ubuntu-toolchain-r-test -# packages: -# - g++-9 -# env: -# - CC=gcc-9 -# - CXX=g++-9 -# - CXXFLAGS="-std=c++2a -Wall -Wextra -pedantic" - # clang default - - compiler: clang - env: - - CC=clang - - CXX=clang++ - # os x - - compiler: clang - os: osx - env: - - CC=clang - - CXX=clang - - CXXFLAGS=-lstdc++ + - cc=clang + - cxx=clang++ + - CXXFLAGS="" before_install: + # Set the compiler environment variables properly + - export CC=${cc} + - export CXX=${cxx} + - ${CC} --version + - ${CXX} --version + +install: # coveralls test coverage: - - if [[ "$CXX" == "g++" ]]; then pip install --user cpp-coveralls ; fi + - if [[ "$COVERALLS" == "true" ]]; then pip install --user cpp-coveralls ; fi # scripts to run before build before_script: @@ -249,8 +97,9 @@ before_script: # build examples, and run tests (ie make & make test) script: - cmake --build . + - export ASAN_OPTIONS=verbosity=1:debug=1 - ctest --verbose --output-on-failure # generate and publish GCov coveralls results after_success: - - if [[ "$CXX" == "g++" ]]; then coveralls --root .. -e examples -e googletest -e sqlite3 -e tests -E ".*feature_tests.*" -E ".*CompilerId.*" --gcov-options '\-lp' ; fi + - if [[ "$COVERALLS" == "true" ]]; then coveralls --root .. -e examples -e googletest -e sqlite3 -e tests -E ".*feature_tests.*" -E ".*CompilerId.*" --gcov-options '\-lp' ; fi