blob: e74a25066203f63daa215afa99aaec9201793726 [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
Jason Rhinelander0b952cd2016-08-17 14:19:08 -040058 install: pip install sphinx sphinx_rtd_theme
59 script: make -C docs html SPHINX_OPTIONS=-W
Wenzel Jakoba40c27e2016-01-21 19:21:59 +010060cache:
61 directories:
62 - $HOME/.cache/pip
Omer Katzf74c9232016-05-21 11:29:30 +030063 - ccache
Jason Rhinelander024ce442016-08-14 12:31:52 -040064before_install:
65- |
66 if [ -n "$DOCKER" ]; then
67 docker pull $DOCKER
68 export containerid=$(docker run --detach --tty \
69 --volume="$PWD":/pybind11 --workdir=/pybind11 \
70 --env="CC=$CC" --env="CXX=$CXX" --env="DEBIAN_FRONTEND=$DEBIAN_FRONTEND" \
71 --env=GCC_COLORS=\ \
72 $DOCKER)
73 docker exec --tty "$containerid" apt-get update
74 docker exec --tty "$containerid" apt-get -y upgrade
75 export SCRIPT_RUN_PREFIX="docker exec --tty $containerid"
76 fi
Dean Moldovan3ac12752016-07-30 00:15:01 +020077- |
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
Jason Rhinelander0b952cd2016-08-17 14:19:08 -040095install:
Jason Rhinelander4b5058d2016-08-17 09:14:22 -040096- |
Jason Rhinelander0b952cd2016-08-17 14:19:08 -040097 pip install numpy scipy
Jason Rhinelander024ce442016-08-14 12:31:52 -040098
Jason Rhinelander0b952cd2016-08-17 14:19:08 -040099 wget -q -O eigen.tar.gz https://bitbucket.org/eigen/eigen/get/3.2.9.tar.gz
100 tar xzf eigen.tar.gz
Dean Moldovana0c1ccf2016-08-12 13:50:00 +0200101 export CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCMAKE_INCLUDE_PATH=$PWD/eigen-eigen-dc6cfdf9bcec"
Dean Moldovan3ac12752016-07-30 00:15:01 +0200102script:
Dean Moldovan00a30092016-08-15 13:41:44 +0200103- $SCRIPT_RUN_PREFIX cmake ${CMAKE_EXTRA_ARGS}
104 -DPYBIND11_PYTHON_VERSION=$PYTHON
105 -DPYBIND11_CPP_STANDARD=-std=c++$CPP
106 -DPYBIND11_WERROR=ON
Dean Moldovana0c1ccf2016-08-12 13:50:00 +0200107- $SCRIPT_RUN_PREFIX make pytest -j 2
Jason Rhinelander024ce442016-08-14 12:31:52 -0400108after_script:
109- if [ -n "$DOCKER" ]; then docker stop "$containerid"; docker rm "$containerid"; fi