From 92a1abf392a69718c62510619339fdd4251f4d9b Mon Sep 17 00:00:00 2001 From: Evan Nemerson Date: Sat, 23 Jun 2018 11:10:49 -0700 Subject: [PATCH] Add Travis CI. --- .travis.yml | 234 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 234 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..7b64007 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,234 @@ +language: c++ +sudo: false +branches: + except: + - /^(wip\/)?(appveyor|msvc|mingw|windows)(\-.+)?$/ +matrix: + include: + ### + ## Release build using the latest GCC + ### + - env: CMAKE_BUILD_TYPE=Release C_COMPILER=gcc-8 CXX_COMPILER=g++-8 + addons: + apt: + sources: + - ubuntu-toolchain-r-test + - george-edison55-precise-backports + packages: + - gcc-8 + - g++-8 + - cmake + - cmake-data + + ### + ## Linux builds using various versions of GCC. + ### + - env: C_COMPILER=gcc-8 CXX_COMPILER=g++-8 + addons: + apt: + sources: + - ubuntu-toolchain-r-test + - george-edison55-precise-backports + packages: + - gcc-8 + - g++-8 + - cmake + - cmake-data + # - env: C_COMPILER=gcc-7 CXX_COMPILER=g++-7 + # addons: + # apt: + # sources: + # - ubuntu-toolchain-r-test + # - george-edison55-precise-backports + # packages: + # - gcc-7 + # - g++-7 + # - cmake + # - cmake-data + - env: C_COMPILER=gcc-6 CXX_COMPILER=g++-6 + addons: + apt: + sources: + - ubuntu-toolchain-r-test + - george-edison55-precise-backports + packages: + - gcc-6 + - g++-6 + - cmake + - cmake-data + - env: C_COMPILER=gcc-5 CXX_COMPILER=g++-5 + addons: + apt: + sources: + - ubuntu-toolchain-r-test + - george-edison55-precise-backports + packages: + - gcc-5 + - g++-5 + - cmake + - cmake-data + # - env: C_COMPILER=gcc-4.9 CXX_COMPILER=g++-4.9 + # addons: + # apt: + # sources: + # - ubuntu-toolchain-r-test + # - george-edison55-precise-backports + # packages: + # - gcc-4.9 + # - g++-4.9 + # - cmake + # - cmake-data + - env: C_COMPILER=gcc-4.8 CXX_COMPILER=g++-4.8 + addons: + apt: + sources: + - ubuntu-toolchain-r-test + - george-edison55-precise-backports + packages: + - gcc-4.8 + - g++-4.8 + - cmake + - cmake-data + # - env: C_COMPILER=gcc-4.7 CXX_COMPILER=g++-4.7 + # addons: + # apt: + # sources: + # - ubuntu-toolchain-r-test + # - george-edison55-precise-backports + # packages: + # - gcc-4.7 + # - g++-4.7 + # - cmake + # - cmake-data + # - env: C_COMPILER=gcc-4.6 CXX_COMPILER=g++-4.6 + # addons: + # apt: + # sources: + # - ubuntu-toolchain-r-test + # - george-edison55-precise-backports + # packages: + # - gcc-4.6 + # - g++-4.6 + # - cmake + # - cmake-data + # - os: linux + # env: C_COMPILER=gcc-4.5 CXX_COMPILER=g++-4.5 + # addons: + # apt: + # sources: + # - ubuntu-toolchain-r-test + # - george-edison55-precise-backports + # packages: + # - gcc-4.5 + # - g++-4.5 + # - cmake + # - cmake-data + # - env: C_COMPILER=gcc-4.4 CXX_COMPILER=g++-4.4 + # addons: + # apt: + # sources: + # - ubuntu-toolchain-r-test + # - george-edison55-precise-backports + # packages: + # - gcc-4.4 + # - g++-4.4 + # - cmake + # - cmake-data + + ### + ## clang on Linux + ### + - env: C_COMPILER=clang-3.9 CXX_COMPILER=clang++-3.9 + addons: + apt: + sources: + - llvm-toolchain-precise-3.9 + - ubuntu-toolchain-r-test + - george-edison55-precise-backports + packages: + - clang-3.9 + - cmake + - cmake-data + # - env: C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8 + # addons: + # apt: + # sources: + # - llvm-toolchain-precise-3.8 + # - ubuntu-toolchain-r-test + # - george-edison55-precise-backports + # packages: + # - clang-3.8 + # - cmake + # - cmake-data + - env: C_COMPILER=clang-3.7 CXX_COMPILER=clang++-3.7 + addons: + apt: + sources: + - llvm-toolchain-precise-3.7 + - ubuntu-toolchain-r-test + - george-edison55-precise-backports + packages: + - clang-3.7 + - cmake + - cmake-data + # - env: C_COMPILER=clang-3.6 CXX_COMPILER=clang++-3.6 + # addons: + # apt: + # sources: + # - llvm-toolchain-precise-3.6 + # - ubuntu-toolchain-r-test + # - george-edison55-precise-backports + # packages: + # - clang-3.6 + # - cmake + # - cmake-data + - env: C_COMPILER=clang-3.5 CXX_COMPILER=clang++-3.5 + addons: + apt: + sources: + - llvm-toolchain-precise-3.5 + - ubuntu-toolchain-r-test + - george-edison55-precise-backports + packages: + - clang-3.5 + - cmake + - cmake-data + + ### + ## PGI + ### + - env: C_COMPILER=pgcc CXX_COMPILER=pgc++ + addons: + apt: + sources: + - george-edison55-precise-backports + packages: + - cmake + - cmake-data + + ### + ## OS X + ### + - os: osx + +before_install: +- if [ "${C_COMPILER}" = "pgcc" -o "${CXX_COMPILER}" = "pgc++" ]; then curl -s 'https://raw.githubusercontent.com/nemequ/pgi-travis/master/install-pgi.sh' | /bin/sh; fi + +### +## If we use the matrix to set CC/CXX Travis overwrites the values, +## so instead we use C/CXX_COMPILER then copy the values to CC/CXX +## here (after Travis has set CC/CXX). +### +- if [ -n "${C_COMPILER}" ]; then export CC="${C_COMPILER}"; fi +- if [ -n "${CXX_COMPILER}" ]; then export CXX="${CXX_COMPILER}"; fi + +# Debug builds by default +- if [ -z "${CMAKE_BUILD_TYPE}" ]; then export CMAKE_BUILD_TYPE=Debug; fi + +- mkdir build +- cd build + +script: +- if [ "${CXX}" != "pgc++" ]; then export AVX_FLAG="-mavx"; fi +- cmake .. -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" -DCMAKE_CXX_COMPILER="${CXX_COMPILER}" -DCMAKE_CXX_FLAGS="${AVX_FLAG} ${CXXFLAGS}" +- make VERBOSE=1