2015-10-11 14:29:35 +00:00
|
|
|
language: cpp
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
dist: trusty
|
2015-10-11 14:29:35 +00:00
|
|
|
sudo: false
|
2016-07-29 22:15:01 +00:00
|
|
|
matrix:
|
|
|
|
include:
|
|
|
|
- os: linux
|
2016-08-14 16:31:52 +00:00
|
|
|
env: PYTHON=2.7 CPP=11 GCC=4.8
|
|
|
|
addons:
|
|
|
|
apt:
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
packages: [cmake=2.\*, cmake-data=2.\*]
|
2016-07-29 22:15:01 +00:00
|
|
|
- os: linux
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
env: PYTHON=3.6 CPP=11 GCC=4.8
|
2016-08-14 16:31:52 +00:00
|
|
|
addons:
|
|
|
|
apt:
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
sources: [deadsnakes]
|
|
|
|
packages: [python3.6-dev python3.6-venv, cmake=2.\*, cmake-data=2.\*]
|
2016-08-25 20:35:15 +00:00
|
|
|
- sudo: true
|
|
|
|
services: docker
|
|
|
|
env: PYTHON=2.7 CPP=14 GCC=6
|
|
|
|
- sudo: true
|
|
|
|
services: docker
|
2016-09-12 20:04:31 +00:00
|
|
|
env: PYTHON=3.5 CPP=14 GCC=6 DEBUG=1
|
2016-12-14 02:00:51 +00:00
|
|
|
- sudo: true
|
|
|
|
services: docker
|
|
|
|
env: PYTHON=3.5 CPP=17 GCC=7
|
2017-04-14 20:53:14 +00:00
|
|
|
- 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]
|
2016-07-29 22:15:01 +00:00
|
|
|
- os: osx
|
|
|
|
osx_image: xcode7.3
|
2016-08-25 20:35:15 +00:00
|
|
|
env: PYTHON=2.7 CPP=14 CLANG
|
2016-07-29 22:15:01 +00:00
|
|
|
- os: osx
|
|
|
|
osx_image: xcode7.3
|
2016-12-26 10:24:30 +00:00
|
|
|
env: PYTHON=3.6 CPP=14 CLANG
|
2017-03-22 19:30:53 +00:00
|
|
|
# Test a PyPy 2.7 build
|
2016-12-16 14:00:46 +00:00
|
|
|
- os: linux
|
2017-03-22 19:30:53 +00:00
|
|
|
env: PYPY=5.7 PYTHON=2.7 CPP=11 GCC=4.8
|
2016-12-16 14:00:46 +00:00
|
|
|
addons:
|
|
|
|
apt:
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
packages: [libblas-dev, liblapack-dev, gfortran]
|
2017-01-31 16:10:31 +00:00
|
|
|
- sudo: true
|
|
|
|
services: docker
|
|
|
|
env: ARCH=i386 PYTHON=3.5 CPP=14 GCC=6
|
Independent tests (#665)
* Make tests buildable independently
This makes "tests" buildable as a separate project that uses
find_package(pybind11 CONFIG) when invoked independently.
This also moves the WERROR option into tests/CMakeLists.txt, as that's
the only place it is used.
* Use Eigen 3.3.1's cmake target, if available
This changes the eigen finding code to attempt to use Eigen's
system-installed Eigen3Config first. In Eigen 3.3.1, it exports a cmake
Eigen3::Eigen target to get dependencies from (rather than setting the
include path directly).
If it fails, we fall back to the trying to load allowing modules (i.e.
allowing our tools/FindEigen3.cmake). If we either fallback, or the
eigen version is older than 3.3.1 (or , we still set the include
directory manually; otherwise, for CONFIG + new Eigen, we get it via
the target.
This is also needed to allow 'tests' to be built independently, when
the find_package(Eigen3) is going to find via the system-installed
Eigen3Config.cmake.
* Add a install-then-build test, using clang on linux
This tests that `make install` to the actual system, followed by a build
of the tests (without the main pybind11 repository available) works as
expected.
To also expand the testing variety a bit, it also builds using
clang-3.9 instead of gcc.
* Don't try loading Eigen3Config in cmake < 3.0
It could FATAL_ERROR as the newer cmake includes a cmake 3.0 required
line.
If doing an independent, out-of-tree "tests" build, the regular
find_package(Eigen3) is likely to fail with the same error, but I think
we can just let that be: if you want a recent Eigen with proper cmake
loading support *and* want to do an independent tests build, you'll
need at least cmake 3.0.
2017-02-24 22:07:53 +00:00
|
|
|
# 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"
|
2016-08-25 20:35:15 +00:00
|
|
|
# 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
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
env: BAREBONES PYTHON=3.5
|
|
|
|
install: $PY_CMD -m pip install --user --upgrade pytest
|
2016-08-17 13:14:22 +00:00
|
|
|
# Documentation build:
|
|
|
|
- os: linux
|
|
|
|
language: docs
|
2016-11-20 20:21:54 +00:00
|
|
|
env: DOCS STYLE LINT
|
2016-12-11 17:51:44 +00:00
|
|
|
install:
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
- export PATH="~/.local/bin:$PATH"
|
2017-04-22 21:30:33 +00:00
|
|
|
- $PY_CMD -m pip install --user --upgrade sphinx sphinx_rtd_theme breathe flake8 pep8-naming
|
2017-01-31 15:54:08 +00:00
|
|
|
- |
|
|
|
|
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"
|
2016-08-28 17:00:44 +00:00
|
|
|
script:
|
|
|
|
- make -C docs html SPHINX_OPTIONS=-W
|
|
|
|
- tools/check-style.sh
|
2016-11-20 20:21:54 +00:00
|
|
|
- flake8
|
2016-12-14 02:00:51 +00:00
|
|
|
allow_failures:
|
|
|
|
- env: PYTHON=3.5 CPP=17 GCC=7
|
2017-04-14 20:53:14 +00:00
|
|
|
- env: PYTHON=3.6 CPP=17 CLANG=4.0
|
2016-01-21 18:21:59 +00:00
|
|
|
cache:
|
|
|
|
directories:
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
- $HOME/.local/bin
|
|
|
|
- $HOME/.local/lib
|
2017-04-14 20:53:14 +00:00
|
|
|
- $HOME/.local/include
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
- $HOME/Library/Python
|
2016-08-14 16:31:52 +00:00
|
|
|
before_install:
|
|
|
|
- |
|
2016-08-25 20:35:15 +00:00
|
|
|
# Configure build variables
|
|
|
|
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
Independent tests (#665)
* Make tests buildable independently
This makes "tests" buildable as a separate project that uses
find_package(pybind11 CONFIG) when invoked independently.
This also moves the WERROR option into tests/CMakeLists.txt, as that's
the only place it is used.
* Use Eigen 3.3.1's cmake target, if available
This changes the eigen finding code to attempt to use Eigen's
system-installed Eigen3Config first. In Eigen 3.3.1, it exports a cmake
Eigen3::Eigen target to get dependencies from (rather than setting the
include path directly).
If it fails, we fall back to the trying to load allowing modules (i.e.
allowing our tools/FindEigen3.cmake). If we either fallback, or the
eigen version is older than 3.3.1 (or , we still set the include
directory manually; otherwise, for CONFIG + new Eigen, we get it via
the target.
This is also needed to allow 'tests' to be built independently, when
the find_package(Eigen3) is going to find via the system-installed
Eigen3Config.cmake.
* Add a install-then-build test, using clang on linux
This tests that `make install` to the actual system, followed by a build
of the tests (without the main pybind11 repository available) works as
expected.
To also expand the testing variety a bit, it also builds using
clang-3.9 instead of gcc.
* Don't try loading Eigen3Config in cmake < 3.0
It could FATAL_ERROR as the newer cmake includes a cmake 3.0 required
line.
If doing an independent, out-of-tree "tests" build, the regular
find_package(Eigen3) is likely to fail with the same error, but I think
we can just let that be: if you want a recent Eigen with proper cmake
loading support *and* want to do an independent tests build, you'll
need at least cmake 3.0.
2017-02-24 22:07:53 +00:00
|
|
|
if [ -n "$CLANG" ]; then
|
2017-04-14 20:53:14 +00:00
|
|
|
export CXX=clang++-$CLANG CC=clang-$CLANG
|
|
|
|
COMPILER_PACKAGES="clang-$CLANG llvm-$CLANG-dev"
|
Independent tests (#665)
* Make tests buildable independently
This makes "tests" buildable as a separate project that uses
find_package(pybind11 CONFIG) when invoked independently.
This also moves the WERROR option into tests/CMakeLists.txt, as that's
the only place it is used.
* Use Eigen 3.3.1's cmake target, if available
This changes the eigen finding code to attempt to use Eigen's
system-installed Eigen3Config first. In Eigen 3.3.1, it exports a cmake
Eigen3::Eigen target to get dependencies from (rather than setting the
include path directly).
If it fails, we fall back to the trying to load allowing modules (i.e.
allowing our tools/FindEigen3.cmake). If we either fallback, or the
eigen version is older than 3.3.1 (or , we still set the include
directory manually; otherwise, for CONFIG + new Eigen, we get it via
the target.
This is also needed to allow 'tests' to be built independently, when
the find_package(Eigen3) is going to find via the system-installed
Eigen3Config.cmake.
* Add a install-then-build test, using clang on linux
This tests that `make install` to the actual system, followed by a build
of the tests (without the main pybind11 repository available) works as
expected.
To also expand the testing variety a bit, it also builds using
clang-3.9 instead of gcc.
* Don't try loading Eigen3Config in cmake < 3.0
It could FATAL_ERROR as the newer cmake includes a cmake 3.0 required
line.
If doing an independent, out-of-tree "tests" build, the regular
find_package(Eigen3) is likely to fail with the same error, but I think
we can just let that be: if you want a recent Eigen with proper cmake
loading support *and* want to do an independent tests build, you'll
need at least cmake 3.0.
2017-02-24 22:07:53 +00:00
|
|
|
else
|
2017-04-14 20:55:11 +00:00
|
|
|
if [ -z "$GCC" ]; then GCC=4.8
|
|
|
|
else COMPILER_PACKAGES=g++-$GCC
|
Independent tests (#665)
* Make tests buildable independently
This makes "tests" buildable as a separate project that uses
find_package(pybind11 CONFIG) when invoked independently.
This also moves the WERROR option into tests/CMakeLists.txt, as that's
the only place it is used.
* Use Eigen 3.3.1's cmake target, if available
This changes the eigen finding code to attempt to use Eigen's
system-installed Eigen3Config first. In Eigen 3.3.1, it exports a cmake
Eigen3::Eigen target to get dependencies from (rather than setting the
include path directly).
If it fails, we fall back to the trying to load allowing modules (i.e.
allowing our tools/FindEigen3.cmake). If we either fallback, or the
eigen version is older than 3.3.1 (or , we still set the include
directory manually; otherwise, for CONFIG + new Eigen, we get it via
the target.
This is also needed to allow 'tests' to be built independently, when
the find_package(Eigen3) is going to find via the system-installed
Eigen3Config.cmake.
* Add a install-then-build test, using clang on linux
This tests that `make install` to the actual system, followed by a build
of the tests (without the main pybind11 repository available) works as
expected.
To also expand the testing variety a bit, it also builds using
clang-3.9 instead of gcc.
* Don't try loading Eigen3Config in cmake < 3.0
It could FATAL_ERROR as the newer cmake includes a cmake 3.0 required
line.
If doing an independent, out-of-tree "tests" build, the regular
find_package(Eigen3) is likely to fail with the same error, but I think
we can just let that be: if you want a recent Eigen with proper cmake
loading support *and* want to do an independent tests build, you'll
need at least cmake 3.0.
2017-02-24 22:07:53 +00:00
|
|
|
fi
|
|
|
|
export CXX=g++-$GCC CC=gcc-$GCC
|
|
|
|
fi
|
2017-04-14 20:55:11 +00:00
|
|
|
if [ "$GCC" = "6" ] || [ "$CLANG" = "3.9" ]; then DOCKER=${ARCH:+$ARCH/}debian:testing
|
|
|
|
elif [ "$GCC" = "7" ]; then DOCKER=debian:experimental APT_GET_EXTRA="-t experimental"
|
2016-12-14 02:00:51 +00:00
|
|
|
fi
|
2016-08-25 20:35:15 +00:00
|
|
|
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
|
|
export CXX=clang++ CC=clang;
|
|
|
|
fi
|
2017-04-14 20:55:11 +00:00
|
|
|
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
|
2016-08-25 20:35:15 +00:00
|
|
|
- |
|
2016-12-16 14:00:46 +00:00
|
|
|
# Initialize environment
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
set -e
|
|
|
|
if [ -n "$DOCKER" ]; then
|
2016-08-14 16:31:52 +00:00
|
|
|
docker pull $DOCKER
|
2017-03-08 19:32:52 +00:00
|
|
|
|
2017-04-14 20:55:11 +00:00
|
|
|
containerid=$(docker run --detach --tty \
|
2016-08-14 16:31:52 +00:00
|
|
|
--volume="$PWD":/pybind11 --workdir=/pybind11 \
|
|
|
|
--env="CC=$CC" --env="CXX=$CXX" --env="DEBIAN_FRONTEND=$DEBIAN_FRONTEND" \
|
|
|
|
--env=GCC_COLORS=\ \
|
|
|
|
$DOCKER)
|
2017-04-14 20:55:11 +00:00
|
|
|
SCRIPT_RUN_PREFIX="docker exec --tty $containerid"
|
2017-03-08 19:32:52 +00:00
|
|
|
$SCRIPT_RUN_PREFIX sh -c 'for s in 0 15; do sleep $s; apt-get update && apt-get -qy dist-upgrade && break; done'
|
2016-08-25 20:35:15 +00:00
|
|
|
else
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
if [ "$PYPY" = "5.7" ]; then
|
2017-04-14 20:55:11 +00:00
|
|
|
curl -fSL https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.1-linux64.tar.bz2 | tar xj
|
|
|
|
PY_CMD=$(echo `pwd`/pypy2-v5.7.1-linux64/bin/pypy)
|
|
|
|
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DPYTHON_EXECUTABLE:FILEPATH=$PY_CMD"
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
else
|
2017-04-14 20:55:11 +00:00
|
|
|
PY_CMD=python$PYTHON
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
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
|
2016-08-14 16:31:52 +00:00
|
|
|
fi
|
2016-08-01 22:42:07 +00:00
|
|
|
fi
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
if [ "$PY" = 3 ] || [ -n "$PYPY" ]; then
|
|
|
|
$PY_CMD -m ensurepip --user
|
|
|
|
fi
|
|
|
|
$PY_CMD -m pip install --user --upgrade pip wheel
|
2016-08-17 13:14:22 +00:00
|
|
|
fi
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
set +e
|
2016-08-17 18:19:08 +00:00
|
|
|
install:
|
2016-08-17 13:14:22 +00:00
|
|
|
- |
|
2016-08-25 20:35:15 +00:00
|
|
|
# Install dependencies
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
set -e
|
2016-08-25 20:35:15 +00:00
|
|
|
if [ -n "$DOCKER" ]; then
|
2017-02-27 14:42:51 +00:00
|
|
|
if [ -n "$DEBUG" ]; then
|
|
|
|
PY_DEBUG="python$PY-dbg python$PY-scipy-dbg"
|
2017-04-14 20:55:11 +00:00
|
|
|
CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DPYTHON_EXECUTABLE=/usr/bin/python${PYTHON}dm"
|
2017-02-27 14:42:51 +00:00
|
|
|
fi
|
2017-03-08 19:32:52 +00:00
|
|
|
$SCRIPT_RUN_PREFIX sh -c "for s in 0 15; do sleep \$s; \
|
2016-12-14 02:00:51 +00:00
|
|
|
apt-get -qy --no-install-recommends $APT_GET_EXTRA install \
|
2017-02-27 14:42:51 +00:00
|
|
|
$PY_DEBUG python$PY-dev python$PY-pytest python$PY-scipy \
|
Independent tests (#665)
* Make tests buildable independently
This makes "tests" buildable as a separate project that uses
find_package(pybind11 CONFIG) when invoked independently.
This also moves the WERROR option into tests/CMakeLists.txt, as that's
the only place it is used.
* Use Eigen 3.3.1's cmake target, if available
This changes the eigen finding code to attempt to use Eigen's
system-installed Eigen3Config first. In Eigen 3.3.1, it exports a cmake
Eigen3::Eigen target to get dependencies from (rather than setting the
include path directly).
If it fails, we fall back to the trying to load allowing modules (i.e.
allowing our tools/FindEigen3.cmake). If we either fallback, or the
eigen version is older than 3.3.1 (or , we still set the include
directory manually; otherwise, for CONFIG + new Eigen, we get it via
the target.
This is also needed to allow 'tests' to be built independently, when
the find_package(Eigen3) is going to find via the system-installed
Eigen3Config.cmake.
* Add a install-then-build test, using clang on linux
This tests that `make install` to the actual system, followed by a build
of the tests (without the main pybind11 repository available) works as
expected.
To also expand the testing variety a bit, it also builds using
clang-3.9 instead of gcc.
* Don't try loading Eigen3Config in cmake < 3.0
It could FATAL_ERROR as the newer cmake includes a cmake 3.0 required
line.
If doing an independent, out-of-tree "tests" build, the regular
find_package(Eigen3) is likely to fail with the same error, but I think
we can just let that be: if you want a recent Eigen with proper cmake
loading support *and* want to do an independent tests build, you'll
need at least cmake 3.0.
2017-02-24 22:07:53 +00:00
|
|
|
libeigen3-dev cmake make ${COMPILER_PACKAGES} && break; done"
|
2017-04-14 20:53:14 +00:00
|
|
|
else
|
2017-03-08 19:32:52 +00:00
|
|
|
|
|
|
|
if [ "$CLANG" = "4.0" ]; then
|
2017-04-14 20:53:14 +00:00
|
|
|
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"
|
|
|
|
export LD_LIBRARY_PATH="$HOME/.local/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
|
|
|
|
if [ "$CPP" = "-std=c++17" ]; then CPP="-std=c++1z"; fi
|
2017-03-08 19:32:52 +00:00
|
|
|
fi
|
2017-04-14 20:53:14 +00:00
|
|
|
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
export NPY_NUM_BUILD_JOBS=2
|
|
|
|
echo "Installing pytest, numpy, scipy..."
|
|
|
|
${PYPY:+travis_wait 30} $PY_CMD -m pip install --user --upgrade --quiet pytest numpy scipy
|
|
|
|
echo "done."
|
2016-08-14 16:31:52 +00:00
|
|
|
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
wget -q -O eigen.tar.gz https://bitbucket.org/eigen/eigen/get/3.3.3.tar.gz
|
2016-08-25 20:35:15 +00:00
|
|
|
tar xzf eigen.tar.gz
|
2017-04-14 20:53:14 +00:00
|
|
|
export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH:+:}$PWD/eigen-eigen-67e894c6cd8f"
|
2016-08-25 20:35:15 +00:00
|
|
|
fi
|
travis-ci: switch to trusty; cache pip packages
This applies several changes to the non-docker travis-ci builds:
- Make all builds use trusty rather than precise. pybind can't really
build in precise anyway (we install essentially the entire toolchain
backported from trusty on every build), and so this saves needing to
install all the backported packages during the build setup.
- Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
3.6 to ubuntu releases earlier than trusty).
- As a result of the switch to trusty, the BAREBONES build now picks up
the (default installed) python 3.5 installation.
- Invoke pip everywhere via $PYTHON -m pip rather than the pip
executable, which saves us having to figure out what the pip
executable is, and ensures that we are using the correct pip.
- Install packages with `pip --user` rather than in a virtualenv.
- Add the local user python package archive to the travis-ci cache
(rather than the pip cache). This saves needing to install packages
during installation (unless there are updates, in which case the
package and the cache are updated).
- Install numpy and scipy on the pypy build. This has to build from
source (and so blas and fortran need to be installed on the build),
but given the above caching, the build will only be slow for the first
build after a new numpy/scipy release. This testing is valuable:
numpy has various behaviour differences under pypy.
- Added set -e/+e around the before_install/install blocks so that a
failure here (e.g. a pip install failure or dependency download
failure) triggers a build failure.
- Update eigen version to latest (3.3.3), mainly to be consistent with
the appveyor build.
- The travis trusty environment has an upgraded cmake, so this
downgrades cmake (to the stock trusty version) on the first couple
jobs so that we're still including some cmake 2.8.12 testing.
2017-04-13 18:18:13 +00:00
|
|
|
set +e
|
2016-07-29 22:15:01 +00:00
|
|
|
script:
|
2016-08-15 11:41:44 +00:00
|
|
|
- $SCRIPT_RUN_PREFIX cmake ${CMAKE_EXTRA_ARGS}
|
|
|
|
-DPYBIND11_PYTHON_VERSION=$PYTHON
|
2016-08-25 20:35:15 +00:00
|
|
|
-DPYBIND11_CPP_STANDARD=$CPP
|
2017-02-10 02:53:38 +00:00
|
|
|
-DPYBIND11_WERROR=${WERROR:-ON}
|
2016-08-12 11:50:00 +00:00
|
|
|
- $SCRIPT_RUN_PREFIX make pytest -j 2
|
2016-12-14 00:43:39 +00:00
|
|
|
- $SCRIPT_RUN_PREFIX make test_cmake_build
|
|
|
|
after_failure: cat tests/test_cmake_build/*.log
|
2016-08-14 16:31:52 +00:00
|
|
|
after_script:
|
|
|
|
- if [ -n "$DOCKER" ]; then docker stop "$containerid"; docker rm "$containerid"; fi
|