language: c sudo: false matrix: include: ### ## Linux builds using various versions of GCC. ### - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=gcc-6 CXX_COMPILER=g++-6 addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-6 - g++-6 - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=gcc-5 CXX_COMPILER=g++-5 addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-5 - g++-5 - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.9 CXX_COMPILER=g++-4.9 addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-4.9 - g++-4.9 - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.8 CXX_COMPILER=g++-4.8 addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-4.8 - g++-4.8 - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.7 CXX_COMPILER=g++-4.7 addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-4.7 - g++-4.7 - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.6 CXX_COMPILER=g++-4.6 addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-4.6 - g++-4.6 # - os: linux # env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.5 CXX_COMPILER=g++-4.5 # addons: # apt: # sources: # - ubuntu-toolchain-r-test # packages: # - gcc-4.5 # - g++-4.5 - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.4 CXX_COMPILER=g++-4.4 addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-4.4 - g++-4.4 ### ## clang on Linux ### - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8 addons: apt: sources: - llvm-toolchain-precise-3.8 - ubuntu-toolchain-r-test packages: - clang-3.8 - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.7 CXX_COMPILER=clang++-3.7 addons: apt: sources: - llvm-toolchain-precise-3.7 - ubuntu-toolchain-r-test packages: - clang-3.7 - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.6 CXX_COMPILER=clang++-3.6 addons: apt: sources: - llvm-toolchain-precise-3.6 - ubuntu-toolchain-r-test packages: - clang-3.6 - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.5 CXX_COMPILER=clang++-3.5 addons: apt: sources: - llvm-toolchain-precise-3.5 - ubuntu-toolchain-r-test packages: - clang-3.5 ### ## Python build on Linux ### - os: linux env: BUILD_SYSTEM=python C_COMPILER=gcc-6 CXX_COMPILER=g++-6 addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-6 - g++-6 ### ## CMake on OS X ## ## These all work, but it seems unnecessary to actually build them ## all since we already test all these versions of GCC on Linux. ## We'll just test 4.4 and the most recent version. ### # - os: osx # env: BUILD_SYSTEM=cmake C_COMPILER=gcc-6 CXX_COMPILER=g++-6 - os: osx env: BUILD_SYSTEM=cmake C_COMPILER=gcc-5 CXX_COMPILER=g++-5 # - os: osx # env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.9 CXX_COMPILER=g++-4.9 # - os: osx # env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.8 CXX_COMPILER=g++-4.8 # - os: osx # env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.7 CXX_COMPILER=g++-4.7 # - os: osx # env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.6 CXX_COMPILER=g++-4.6 # - os: osx # env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.5 CXX_COMPILER=g++-4.5 - os: osx osx_image: beta-xcode6.2 env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.4 CXX_COMPILER=g++-4.4 ### ## Python OS X builds ### - os: osx env: BUILD_SYSTEM=python INSTALL_TYPE=macpython PYTHON_VERSION=2.7.12 C_COMPILER=gcc CXX_COMPILER=g++ - os: osx env: BUILD_SYSTEM=python INSTALL_TYPE=macpython PYTHON_VERSION=3.4.4 C_COMPILER=gcc CXX_COMPILER=g++ - os: osx env: BUILD_SYSTEM=python INSTALL_TYPE=macpython PYTHON_VERSION=3.5.2 C_COMPILER=gcc CXX_COMPILER=g++ ### ## Sanitizers ### - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8 SANITIZER=address addons: apt: sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.8 packages: - clang-3.8 - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8 SANITIZER=thread addons: apt: sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.8 packages: - clang-3.8 - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8 SANITIZER=undefined CFLAGS="-fno-sanitize-recover=undefined,integer" addons: apt: sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.8 packages: - clang-3.8 ### ## mingw ### - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=x86_64-w64-mingw32-gcc CXX_COMPILER=x86_64-w64-mingw32-g++ RC_COMPILER=x86_64-w64-mingw32-windres CROSS_COMPILE=yes addons: apt: sources: - ubuntu-toolchain-r-test - george-edison55-precise-backports packages: - binutils-mingw-w64-x86-64 - g++-mingw-w64-x86-64 - gcc-mingw-w64-x86-64 - binutils-mingw-w64-x86-64 - wine # Because 2.8.6 passes -rdynamic to the linker, which breaks the build. - cmake - cmake-data before_install: ### ## 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 install: - ./.travis.sh install script: - ./.travis.sh script after_success: - ./.travis.sh after_success before_deploy: - if [ "${BUILD_SYSTEM}" = "python" ] && [ "${TRAVIS_OS_NAME}" = "osx" ]; then export WHEELS=$(ls ./dist/*.whl); fi deploy: provider: releases api_key: secure: YcCBi6W/w4dtKCa59Wfm8L5lGWvK7KxaFNDr3yh1Hz5aStXXf758pEMHGewnlbfbwuj5a3SjBb1nLp1M69OQJfxm442uXBaBKo52PM9PPbD7NjvbNIso73pqcSODXQXKuZxDFpEhfuDTVq3hUkUqiwhChWhrFucJsSL51i7qSss= file: "${WHEELS}" skip_cleanup: true on: repo: "google/brotli" tags: true condition: "${BUILD_SYSTEM} = python && ${TRAVIS_OS_NAME} = osx"