language: c matrix: include: # OSX standard test build # this is really a GCC frontend with an LLVM back-end - os: osx env: - MATRIX_EVAL="CC=gcc && CXX=g++" # OSX and pure GCCs # https://docs.travis-ci.com/user/languages/c/#GCC-on-OS-X - os: osx env: - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" - os: osx env: - MATRIX_EVAL="brew install gcc5 && CC=gcc-5 && CXX=g++-5" - os: osx env: - MATRIX_EVAL="brew install gcc6 && CC=gcc-6 && CXX=g++-6" - os: osx env: - MATRIX_EVAL="brew install gcc && CC=gcc-7 && CXX=g++-7" # OSX and pure LLVMs - the version is controlled by the osx_image variable # images as per https://blog.travis-ci.com/2017-10-16-a-new-default-os-x-image-is-coming - os: osx osx_image: xcode6.4 env: - MATRIX_EVAL="CC=clang && CXX=clang" - os: osx osx_image: xcode7.3 env: - MATRIX_EVAL="CC=clang && CXX=clang" - os: osx osx_image: xcode8.3 env: - MATRIX_EVAL="CC=clang && CXX=clang" - os: osx osx_image: xcode9 env: - MATRIX_EVAL="CC=clang && CXX=clang" - os: osx osx_image: xcode9.1 env: - MATRIX_EVAL="CC=clang && CXX=clang" # Linux and GCCs # gcc 4.8 at the time of writing - os: linux dist: trusty env: - MATRIX_EVAL="CC=gcc && CXX=g++" # for newer GCCs, add ubuntu-toolchain-r-test # https://docs.travis-ci.com/user/languages/c/ - os: linux dist: trusty addons: apt: sources: - ubuntu-toolchain-r-test packages: - g++-4.9 env: - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" - os: linux dist: trusty addons: apt: sources: - ubuntu-toolchain-r-test packages: - g++-5 env: - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5" - os: linux dist: trusty addons: apt: sources: - ubuntu-toolchain-r-test packages: - g++-6 env: - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6" - os: linux dist: trusty addons: apt: sources: - ubuntu-toolchain-r-test packages: - g++-7 env: - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" # Linux and LLVMs # https://docs.travis-ci.com/user/languages/c/#Clang - os: linux dist: trusty env: - MATRIX_EVAL="CC=clang && CXX=clang" - os: linux dist: trusty addons: apt: sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.6 packages: - clang-3.6 env: - MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6" - os: linux dist: trusty addons: apt: sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.7 packages: - clang-3.7 env: - MATRIX_EVAL="CC=clang-3.7 && CXX=clang++-3.7" - os: linux dist: trusty addons: apt: sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.8 packages: - clang-3.8 env: - MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8" - os: linux dist: trusty addons: apt: sources: - llvm-toolchain-trusty-3.9 packages: - clang-3.9 env: - MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9" - os: linux dist: trusty addons: apt: sources: - llvm-toolchain-trusty-4.0 packages: - clang-4.0 env: - MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0" - os: linux dist: trusty addons: apt: sources: - llvm-toolchain-trusty-5.0 packages: - clang-5.0 env: - MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0" before_install: # avoid issues with outdated Homebrew installation on Mac OSX by updating it # before anything else # TODO: remove "brew update" line after 2017-11-15, see https://blog.travis-ci.com/2017-10-16-a-new-default-os-x-image-is-coming and # https://github.com/travis-ci/travis-ci/issues/8552 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi - eval "${MATRIX_EVAL}" script: autoreconf -V && autoreconf --force && ./configure && cat config.log && make && make check