Add Travis CI.

This commit is contained in:
Evan Nemerson 2018-06-23 11:10:49 -07:00
parent 9c993c48b5
commit 92a1abf392
1 changed files with 234 additions and 0 deletions

234
.travis.yml Normal file
View File

@ -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