blob: f0e6af130605cd4eae00dbb34b9c84c7385a0ee8 [file] [log] [blame]
Wenzel Jakob3b806d42015-10-11 16:29:35 +02001language: cpp
2sudo: false
Dean Moldovan3ac12752016-07-30 00:15:01 +02003matrix:
4 include:
5 - os: linux
6 compiler: gcc-4.8
Jason Rhinelander024ce442016-08-14 12:31:52 -04007 env: PYTHON=2.7 CPP=11 GCC=4.8
8 addons:
9 apt:
10 sources:
11 - ubuntu-toolchain-r-test
12 - kubuntu-backports # cmake 2.8.12
13 packages:
14 - g++-4.8
15 - cmake
Dean Moldovan3ac12752016-07-30 00:15:01 +020016 - os: linux
17 compiler: gcc-4.8
Jason Rhinelander024ce442016-08-14 12:31:52 -040018 env: PYTHON=3.5 CPP=11 GCC=4.8
19 addons:
20 apt:
21 sources:
22 - ubuntu-toolchain-r-test
23 - deadsnakes
24 - kubuntu-backports # cmake 2.8.12
25 packages:
26 - g++-4.8
27 - python3.5-dev
28 - cmake
Dean Moldovan3ac12752016-07-30 00:15:01 +020029 - os: osx
30 osx_image: xcode7.3
31 env: PYTHON=2.7 CPP=14
32 - os: osx
33 osx_image: xcode7.3
34 env: PYTHON=3.5 CPP=14
Jason Rhinelander024ce442016-08-14 12:31:52 -040035 - compiler: gcc-6
36 services: docker
37 sudo: true
38 env: PYTHON=2.7 CPP=14 DOCKER=debian:testing NATIVE_DEPS=1
39 install:
Jason Rhinelander7e016362016-08-16 22:46:37 -040040 - >
41 docker exec --tty "$containerid" apt-get -y --no-install-recommends install
Jason Rhinelander4b5058d2016-08-17 09:14:22 -040042 python2.7-dev python-scipy libeigen3-dev
Jason Rhinelander7e016362016-08-16 22:46:37 -040043 cmake make g++
Jason Rhinelander024ce442016-08-14 12:31:52 -040044 - compiler: gcc-6
45 services: docker
46 sudo: true
47 env: PYTHON=3.5 CPP=14 DOCKER=debian:testing NATIVE_DEPS=1
48 install:
Jason Rhinelander7e016362016-08-16 22:46:37 -040049 - >
50 docker exec --tty "$containerid" apt-get -y --no-install-recommends install
Jason Rhinelander4b5058d2016-08-17 09:14:22 -040051 python3.5-dev python3-scipy libeigen3-dev
Jason Rhinelander7e016362016-08-16 22:46:37 -040052 cmake make g++
Jason Rhinelander4b5058d2016-08-17 09:14:22 -040053 # Documentation build:
54 - os: linux
55 language: docs
56 compiler: sphinx
57 env: PYTHON=2.7 DOCS=1
58 script: $SCRIPT_RUN_PREFIX make -C docs html SPHINX_OPTIONS=-W
Wenzel Jakoba40c27e2016-01-21 19:21:59 +010059cache:
60 directories:
61 - $HOME/.cache/pip
Omer Katzf74c9232016-05-21 11:29:30 +030062 - ccache
Jason Rhinelander024ce442016-08-14 12:31:52 -040063before_install:
64- |
65 if [ -n "$DOCKER" ]; then
66 docker pull $DOCKER
67 export containerid=$(docker run --detach --tty \
68 --volume="$PWD":/pybind11 --workdir=/pybind11 \
69 --env="CC=$CC" --env="CXX=$CXX" --env="DEBIAN_FRONTEND=$DEBIAN_FRONTEND" \
70 --env=GCC_COLORS=\ \
71 $DOCKER)
72 docker exec --tty "$containerid" apt-get update
73 docker exec --tty "$containerid" apt-get -y upgrade
74 export SCRIPT_RUN_PREFIX="docker exec --tty $containerid"
75 fi
Dean Moldovan3ac12752016-07-30 00:15:01 +020076install:
77- |
Jason Rhinelander024ce442016-08-14 12:31:52 -040078 if [ -z "$NATIVE_DEPS" ]; then
79 if [ "$TRAVIS_OS_NAME" = "linux" ]; then
80 if [ -n "$GCC" ]; then export CXX=g++-$GCC CC=gcc-$GCC; fi
81 pip install --user --upgrade pip virtualenv
82 virtualenv -p python$PYTHON venv
83 elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
84 if [ "${PYTHON:0:1}" = "3" ]; then
85 PMAJOR=3; brew update; brew install python$PMAJOR;
86 else
87 curl -fsSL -O https://bootstrap.pypa.io/get-pip.py
88 sudo -H python get-pip.py
89 fi
90 pip$PMAJOR install --user --upgrade pip virtualenv
91 python$PMAJOR -m virtualenv venv
Dean Moldovan880a7e42016-08-02 00:42:07 +020092 fi
Jason Rhinelander024ce442016-08-14 12:31:52 -040093 source venv/bin/activate
Jason Rhinelander4b5058d2016-08-17 09:14:22 -040094 fi
95- |
96 if [ -n "$DOCS" ] && [ -z "$NATIVE_DEPS" ]; then pip install sphinx sphinx_rtd_theme; fi
97- |
98 if [ -z "$NATIVE_DEPS" ] && [ -z "$DOCS" ]; then
99 pip install numpy scipy
Jason Rhinelander024ce442016-08-14 12:31:52 -0400100
101 wget -q -O eigen.tar.gz https://bitbucket.org/eigen/eigen/get/3.2.9.tar.gz
102 tar xzf eigen.tar.gz
103 export CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCMAKE_INCLUDE_PATH=eigen-eigen-dc6cfdf9bcec"
Dean Moldovan3ac12752016-07-30 00:15:01 +0200104 fi
Dean Moldovan3ac12752016-07-30 00:15:01 +0200105script:
Dean Moldovan00a30092016-08-15 13:41:44 +0200106- $SCRIPT_RUN_PREFIX cmake ${CMAKE_EXTRA_ARGS}
107 -DPYBIND11_PYTHON_VERSION=$PYTHON
108 -DPYBIND11_CPP_STANDARD=-std=c++$CPP
109 -DPYBIND11_WERROR=ON
Jason Rhinelander024ce442016-08-14 12:31:52 -0400110- $SCRIPT_RUN_PREFIX make CTEST_OUTPUT_ON_FAILURE=TRUE check -j 2
111after_script:
112- if [ -n "$DOCKER" ]; then docker stop "$containerid"; docker rm "$containerid"; fi