language: cpp
dist: trusty
sudo: false
matrix:
  include:
  - os: linux
    env: PYTHON=2.7 CPP=11 GCC=4.8
    addons:
      apt:
        packages: [cmake=2.\*, cmake-data=2.\*]
  - os: linux
    env: PYTHON=3.6 CPP=11 GCC=4.8
    addons:
      apt:
        sources: [deadsnakes]
        packages: [python3.6-dev python3.6-venv, cmake=2.\*, cmake-data=2.\*]
  - sudo: true
    services: docker
    env: PYTHON=2.7 CPP=14 GCC=6
  - sudo: true
    services: docker
    env: PYTHON=3.5 CPP=14 GCC=6 DEBUG=1
  - sudo: true
    services: docker
    env: PYTHON=3.5 CPP=17 GCC=7
  - os: linux
    env: PYTHON=3.6 CPP=17 CLANG=4.0
    addons:
      apt:
        sources: [deadsnakes, llvm-toolchain-trusty-4.0]
        packages: [python3.6-dev python3.6-venv clang-4.0 llvm-4.0-dev, lld-4.0]
  - os: osx
    osx_image: xcode7.3
    env: PYTHON=2.7 CPP=14 CLANG
  - os: osx
    osx_image: xcode7.3
    env: PYTHON=3.6 CPP=14 CLANG
  # Test a PyPy 2.7 build
  - os: linux
    env: PYPY=5.8 PYTHON=2.7 CPP=11 GCC=4.8
    addons:
      apt:
        packages: [libblas-dev, liblapack-dev, gfortran]
  - sudo: true
    services: docker
    env: ARCH=i386 PYTHON=3.5 CPP=14 GCC=6
  # This next one does a make install *before* testing, then builds the tests against the installed version:
  - sudo: true
    services: docker
    env: PYTHON=3.5 CPP=14 CLANG=3.9 INSTALL=1
    script:
      - |
        $SCRIPT_RUN_PREFIX sh -c "set -e
        cmake ${CMAKE_EXTRA_ARGS} -DPYBIND11_INSTALL=1 -DPYBIND11_TEST=0
        make install
        cp -a tests /pybind11-tests
        mkdir /build-tests && cd /build-tests
        cmake ../pybind11-tests ${CMAKE_EXTRA_ARGS} -DPYBIND11_WERROR=ON
        make pytest -j 2"
  # A barebones build makes sure everything still works without optional deps (numpy/scipy/eigen)
  # and also tests the automatic discovery functions in CMake (Python version, C++ standard).
  - os: linux
    env: BAREBONES PYTHON=3.5
    install: $PY_CMD -m pip install --user --upgrade pytest
  # Documentation build:
  - os: linux
    language: docs
    env: DOCS STYLE LINT
    install:
    - export PATH="~/.local/bin:$PATH"
    - $PY_CMD -m pip install --user --upgrade sphinx sphinx_rtd_theme breathe flake8 pep8-naming
    - |
      curl -fsSL ftp://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.12.linux.bin.tar.gz | tar xz
      export PATH="$PWD/doxygen-1.8.12/bin:$PATH"
    script:
    - make -C docs html SPHINX_OPTIONS=-W
    - tools/check-style.sh
    - flake8
cache:
  directories:
  - $HOME/.local/bin
  - $HOME/.local/lib
  - $HOME/.local/include
  - $HOME/Library/Python
before_install:
- |
  # Configure build variables
  if [ "$TRAVIS_OS_NAME" = "linux" ]; then
    if [ -n "$CLANG" ]; then
      export CXX=clang++-$CLANG CC=clang-$CLANG
      COMPILER_PACKAGES="clang-$CLANG llvm-$CLANG-dev"
    else
      if [ -z "$GCC" ]; then GCC=4.8
      else COMPILER_PACKAGES=g++-$GCC
      fi
      export CXX=g++-$GCC CC=gcc-$GCC
    fi
    if [ "$GCC" = "6" ] || [ "$CLANG" = "3.9" ]; then DOCKER=${ARCH:+$ARCH/}debian:stretch
    elif [ "$GCC" = "7" ]; then DOCKER=debian:buster
    fi
  elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
    export CXX=clang++ CC=clang;
  fi
  if [ -n "$CPP" ]; then CPP=-std=c++$CPP; fi
  if [ "${PYTHON:0:1}" = "3" ]; then PY=3; fi
  if [ -n "$DEBUG" ]; then CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCMAKE_BUILD_TYPE=Debug"; fi
- |
  # Initialize environment
  set -e
  if [ -n "$DOCKER" ]; then
    docker pull $DOCKER

    containerid=$(docker run --detach --tty \
      --volume="$PWD":/pybind11 --workdir=/pybind11 \
      --env="CC=$CC" --env="CXX=$CXX" --env="DEBIAN_FRONTEND=$DEBIAN_FRONTEND" \
      --env=GCC_COLORS=\  \
      $DOCKER)
    SCRIPT_RUN_PREFIX="docker exec --tty $containerid"
    $SCRIPT_RUN_PREFIX sh -c 'for s in 0 15; do sleep $s; apt-get update && apt-get -qy dist-upgrade && break; done'
  else
    if [ "$PYPY" = "5.8" ]; then
      curl -fSL https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.8.0-linux64.tar.bz2 | tar xj
      PY_CMD=$(echo `pwd`/pypy2-v5.8.0-linux64/bin/pypy)
      CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DPYTHON_EXECUTABLE:FILEPATH=$PY_CMD"
    else
      PY_CMD=python$PYTHON
      if [ "$TRAVIS_OS_NAME" = "osx" ]; then
        if [ "$PY" = "3" ]; then
          brew update; brew install python$PY;
        else
          curl -fsSL https://bootstrap.pypa.io/get-pip.py | $PY_CMD - --user
        fi
      fi
    fi
    if [ "$PY" = 3 ] || [ -n "$PYPY" ]; then
      $PY_CMD -m ensurepip --user
    fi
    $PY_CMD -m pip install --user --upgrade pip wheel
  fi
  set +e
install:
- |
  # Install dependencies
  set -e
  if [ -n "$DOCKER" ]; then
    if [ -n "$DEBUG" ]; then
      PY_DEBUG="python$PY-dbg python$PY-scipy-dbg"
      CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DPYTHON_EXECUTABLE=/usr/bin/python${PYTHON}dm"
    fi
    $SCRIPT_RUN_PREFIX sh -c "for s in 0 15; do sleep \$s; \
      apt-get -qy --no-install-recommends install \
        $PY_DEBUG python$PY-dev python$PY-pytest python$PY-scipy \
        libeigen3-dev cmake make ${COMPILER_PACKAGES} && break; done"
  else

    if [ "$CLANG" = "4.0" ]; then
      if ! [ -d ~/.local/include/c++/v1 ]; then
        # Neither debian nor llvm provide a libc++ 4.0 deb; luckily it's fairly quick
        # to build, install (and cache), so do it ourselves:
        git clone --depth=1 https://github.com/llvm-mirror/llvm.git llvm-source
        git clone https://github.com/llvm-mirror/libcxx.git llvm-source/projects/libcxx -b release_40
        git clone https://github.com/llvm-mirror/libcxxabi.git llvm-source/projects/libcxxabi -b release_40
        mkdir llvm-build && cd llvm-build
        # Building llvm requires a newer cmake than is provided by the trusty container:
        CMAKE=cmake-3.8.0-Linux-x86_64
        curl https://cmake.org/files/v3.8/$CMAKE.tar.gz | tar xz
        ./$CMAKE/bin/cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=~/.local ../llvm-source
        make -j2 install-cxxabi install-cxx
        cp -a include/c++/v1/*cxxabi*.h ~/.local/include/c++/v1
        cd ..
      fi
      export CXXFLAGS="-isystem $HOME/.local/include/c++/v1 -stdlib=libc++"
      export LDFLAGS="-L$HOME/.local/lib -fuse-ld=lld-$CLANG"
      export LD_LIBRARY_PATH="$HOME/.local/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
      if [ "$CPP" = "-std=c++17" ]; then CPP="-std=c++1z"; fi
    fi

    export NPY_NUM_BUILD_JOBS=2
    echo "Installing pytest, numpy, scipy..."
    ${PYPY:+travis_wait 30} $PY_CMD -m pip install --user --upgrade pytest numpy scipy \
        ${PYPY:+--extra-index-url https://imaginary.ca/trusty-pypi}
    echo "done."

    wget -q -O eigen.tar.gz https://bitbucket.org/eigen/eigen/get/3.3.3.tar.gz
    tar xzf eigen.tar.gz
    export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH:+:}$PWD/eigen-eigen-67e894c6cd8f"
  fi
  set +e
script:
- $SCRIPT_RUN_PREFIX cmake ${CMAKE_EXTRA_ARGS}
    -DPYBIND11_PYTHON_VERSION=$PYTHON
    -DPYBIND11_CPP_STANDARD=$CPP
    -DPYBIND11_WERROR=${WERROR:-ON}
    -DDOWNLOAD_CATCH=ON
- $SCRIPT_RUN_PREFIX make pytest -j 2
- $SCRIPT_RUN_PREFIX make cpptest -j 2
- $SCRIPT_RUN_PREFIX make test_cmake_build
after_failure: cat tests/test_cmake_build/*.log*
after_script:
- if [ -n "$DOCKER" ]; then docker stop "$containerid"; docker rm "$containerid"; fi
