1# Build matrix / environment variable are explained on: 2# https://docs.travis-ci.com/user/customizing-the-build/ 3# This file can be validated on: 4# http://lint.travis-ci.org/ 5 6language: cpp 7 8# Define the matrix explicitly, manually expanding the combinations of (os, compiler, env). 9# It is more tedious, but grants us far more flexibility. 10matrix: 11 include: 12 - os: linux 13 dist: bionic 14 compiler: gcc 15 install: ./ci/install-linux.sh && ./ci/log-config.sh 16 script: ./ci/build-linux-bazel.sh 17 - os: linux 18 dist: bionic 19 compiler: clang 20 install: ./ci/install-linux.sh && ./ci/log-config.sh 21 script: ./ci/build-linux-bazel.sh 22 - os: linux 23 dist: bionic 24 compiler: gcc 25 env: BUILD_TYPE=Debug CXX_FLAGS="-std=c++11 -Wdeprecated" 26 - os: linux 27 dist: bionic 28 compiler: clang 29 env: BUILD_TYPE=Release CXX_FLAGS="-std=c++11 -Wdeprecated" NO_EXCEPTION=ON NO_RTTI=ON COMPILER_IS_GNUCXX=ON 30 - os: osx 31 osx_image: xcode12.2 32 compiler: gcc 33 env: BUILD_TYPE=Release CC=gcc-10 CXX=g++-10 CXX_FLAGS="-std=c++11 -Wdeprecated" HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp 34 - os: osx 35 osx_image: xcode12.2 36 compiler: clang 37 env: BUILD_TYPE=Release CXX_FLAGS="-std=c++11 -Wdeprecated" HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp 38 39# These are the install and build (script) phases for the most common entries in the matrix. They could be included 40# in each entry in the matrix, but that is just repetitive. 41install: 42 - ./ci/install-${TRAVIS_OS_NAME}.sh 43 - . ./ci/env-${TRAVIS_OS_NAME}.sh 44 - ./ci/log-config.sh 45 46script: ./ci/travis.sh 47 48# This section installs the necessary dependencies. 49addons: 50 apt: 51 packages: 52 - g++ 53 - clang 54 update: true 55 homebrew: 56 packages: 57 - gcc@10 58 update: true 59 60notifications: 61 email: false 62