mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-25 22:52:01 +00:00
Add barebones build to Travis CI
This build makes sure everything still works without optional dependencies (numpy/scipy/eigen) and also tests the automatic discovery functions in CMake (Python version, C++ standard). [skip appveyor]
This commit is contained in:
parent
7b748cef3b
commit
b62a896f31
102
.travis.yml
102
.travis.yml
@ -3,58 +3,42 @@ sudo: false
|
|||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- os: linux
|
- os: linux
|
||||||
compiler: gcc-4.8
|
|
||||||
env: PYTHON=2.7 CPP=11 GCC=4.8
|
env: PYTHON=2.7 CPP=11 GCC=4.8
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources:
|
sources: [ubuntu-toolchain-r-test, kubuntu-backports]
|
||||||
- ubuntu-toolchain-r-test
|
packages: [g++-4.8, cmake]
|
||||||
- kubuntu-backports # cmake 2.8.12
|
|
||||||
packages:
|
|
||||||
- g++-4.8
|
|
||||||
- cmake
|
|
||||||
- os: linux
|
- os: linux
|
||||||
compiler: gcc-4.8
|
|
||||||
env: PYTHON=3.5 CPP=11 GCC=4.8
|
env: PYTHON=3.5 CPP=11 GCC=4.8
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources:
|
sources: [ubuntu-toolchain-r-test, kubuntu-backports, deadsnakes]
|
||||||
- ubuntu-toolchain-r-test
|
packages: [g++-4.8, cmake, python3.5-dev]
|
||||||
- deadsnakes
|
- sudo: true
|
||||||
- kubuntu-backports # cmake 2.8.12
|
services: docker
|
||||||
packages:
|
env: PYTHON=2.7 CPP=14 GCC=6
|
||||||
- g++-4.8
|
- sudo: true
|
||||||
- python3.5-dev
|
services: docker
|
||||||
- cmake
|
env: PYTHON=3.5 CPP=14 GCC=6
|
||||||
- os: osx
|
- os: osx
|
||||||
osx_image: xcode7.3
|
osx_image: xcode7.3
|
||||||
env: PYTHON=2.7 CPP=14
|
env: PYTHON=2.7 CPP=14 CLANG
|
||||||
- os: osx
|
- os: osx
|
||||||
osx_image: xcode7.3
|
osx_image: xcode7.3
|
||||||
env: PYTHON=3.5 CPP=14
|
env: PYTHON=3.5 CPP=14 CLANG
|
||||||
- compiler: gcc-6
|
# A barebones build makes sure everything still works without optional deps (numpy/scipy/eigen)
|
||||||
services: docker
|
# and also tests the automatic discovery functions in CMake (Python version, C++ standard).
|
||||||
sudo: true
|
- os: linux
|
||||||
env: PYTHON=2.7 CPP=14 DOCKER=debian:testing NATIVE_DEPS=1
|
env: BAREBONES
|
||||||
install:
|
addons:
|
||||||
- >
|
apt:
|
||||||
docker exec --tty "$containerid" apt-get -y --no-install-recommends install
|
sources: [ubuntu-toolchain-r-test, kubuntu-backports]
|
||||||
python2.7-dev python-pip python-setuptools python-scipy libeigen3-dev
|
packages: [g++-4.8, cmake]
|
||||||
cmake make g++
|
install: false
|
||||||
- compiler: gcc-6
|
|
||||||
services: docker
|
|
||||||
sudo: true
|
|
||||||
env: PYTHON=3.5 CPP=14 DOCKER=debian:testing NATIVE_DEPS=1
|
|
||||||
install:
|
|
||||||
- >
|
|
||||||
docker exec --tty "$containerid" apt-get -y --no-install-recommends install
|
|
||||||
python3.5-dev python3-pip python3-setuptools python3-scipy libeigen3-dev
|
|
||||||
cmake make g++
|
|
||||||
# Documentation build:
|
# Documentation build:
|
||||||
- os: linux
|
- os: linux
|
||||||
language: docs
|
language: docs
|
||||||
compiler: sphinx
|
env: DOCS
|
||||||
env: PYTHON=2.7 DOCS=1
|
|
||||||
install: pip install sphinx sphinx_rtd_theme
|
install: pip install sphinx sphinx_rtd_theme
|
||||||
script: make -C docs html SPHINX_OPTIONS=-W
|
script: make -C docs html SPHINX_OPTIONS=-W
|
||||||
cache:
|
cache:
|
||||||
@ -63,6 +47,18 @@ cache:
|
|||||||
- ccache
|
- ccache
|
||||||
before_install:
|
before_install:
|
||||||
- |
|
- |
|
||||||
|
# Configure build variables
|
||||||
|
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
||||||
|
if [ -z "$GCC" ]; then export GCC=4.8; fi
|
||||||
|
export CXX=g++-$GCC CC=gcc-$GCC;
|
||||||
|
if [ "$GCC" = "6" ]; then export DOCKER=debian:testing CXX=g++ CC=gcc; fi
|
||||||
|
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
||||||
|
export CXX=clang++ CC=clang;
|
||||||
|
fi
|
||||||
|
if [ -n "$CPP" ]; then export CPP=-std=c++$CPP; fi
|
||||||
|
if [ "${PYTHON:0:1}" = "3" ]; then export PY=3; fi
|
||||||
|
- |
|
||||||
|
# Initialize enviornment
|
||||||
if [ -n "$DOCKER" ]; then
|
if [ -n "$DOCKER" ]; then
|
||||||
docker pull $DOCKER
|
docker pull $DOCKER
|
||||||
export containerid=$(docker run --detach --tty \
|
export containerid=$(docker run --detach --tty \
|
||||||
@ -73,36 +69,40 @@ before_install:
|
|||||||
docker exec --tty "$containerid" apt-get update
|
docker exec --tty "$containerid" apt-get update
|
||||||
docker exec --tty "$containerid" apt-get -y upgrade
|
docker exec --tty "$containerid" apt-get -y upgrade
|
||||||
export SCRIPT_RUN_PREFIX="docker exec --tty $containerid"
|
export SCRIPT_RUN_PREFIX="docker exec --tty $containerid"
|
||||||
fi
|
else
|
||||||
- |
|
|
||||||
if [ -z "$NATIVE_DEPS" ]; then
|
|
||||||
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
||||||
if [ -n "$GCC" ]; then export CXX=g++-$GCC CC=gcc-$GCC; fi
|
|
||||||
pip install --user --upgrade pip virtualenv
|
pip install --user --upgrade pip virtualenv
|
||||||
virtualenv -p python$PYTHON venv
|
virtualenv -p python$PYTHON venv
|
||||||
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
||||||
if [ "${PYTHON:0:1}" = "3" ]; then
|
if [ "$PY" = "3" ]; then
|
||||||
PMAJOR=3; brew update; brew install python$PMAJOR;
|
brew update; brew install python$PY;
|
||||||
else
|
else
|
||||||
curl -fsSL -O https://bootstrap.pypa.io/get-pip.py
|
curl -fsSL -O https://bootstrap.pypa.io/get-pip.py
|
||||||
sudo -H python get-pip.py
|
sudo -H python get-pip.py
|
||||||
fi
|
fi
|
||||||
pip$PMAJOR install --user --upgrade pip virtualenv
|
pip$PY install --user --upgrade pip virtualenv
|
||||||
python$PMAJOR -m virtualenv venv
|
python$PY -m virtualenv venv
|
||||||
fi
|
fi
|
||||||
source venv/bin/activate
|
source venv/bin/activate
|
||||||
fi
|
fi
|
||||||
install:
|
install:
|
||||||
- |
|
- |
|
||||||
pip install numpy scipy
|
# Install dependencies
|
||||||
|
if [ -n "$DOCKER" ]; then
|
||||||
|
docker exec --tty "$containerid" apt-get -y --no-install-recommends install \
|
||||||
|
python$PYTHON-dev python$PY-pip python$PY-setuptools python$PY-scipy \
|
||||||
|
libeigen3-dev cmake make g++
|
||||||
|
else
|
||||||
|
pip install numpy scipy
|
||||||
|
|
||||||
wget -q -O eigen.tar.gz https://bitbucket.org/eigen/eigen/get/3.2.9.tar.gz
|
wget -q -O eigen.tar.gz https://bitbucket.org/eigen/eigen/get/3.2.9.tar.gz
|
||||||
tar xzf eigen.tar.gz
|
tar xzf eigen.tar.gz
|
||||||
export CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCMAKE_INCLUDE_PATH=$PWD/eigen-eigen-dc6cfdf9bcec"
|
export CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCMAKE_INCLUDE_PATH=$PWD/eigen-eigen-dc6cfdf9bcec"
|
||||||
|
fi
|
||||||
script:
|
script:
|
||||||
- $SCRIPT_RUN_PREFIX cmake ${CMAKE_EXTRA_ARGS}
|
- $SCRIPT_RUN_PREFIX cmake ${CMAKE_EXTRA_ARGS}
|
||||||
-DPYBIND11_PYTHON_VERSION=$PYTHON
|
-DPYBIND11_PYTHON_VERSION=$PYTHON
|
||||||
-DPYBIND11_CPP_STANDARD=-std=c++$CPP
|
-DPYBIND11_CPP_STANDARD=$CPP
|
||||||
-DPYBIND11_WERROR=ON
|
-DPYBIND11_WERROR=ON
|
||||||
- $SCRIPT_RUN_PREFIX make pytest -j 2
|
- $SCRIPT_RUN_PREFIX make pytest -j 2
|
||||||
after_script:
|
after_script:
|
||||||
|
@ -41,7 +41,7 @@ if(NOT MSVC AND NOT PYBIND11_CPP_STANDARD)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(PYBIND11_CPP_STANDARD ${PYBIND11_CPP_STANDARD} CACHE STRING
|
set(PYBIND11_CPP_STANDARD ${PYBIND11_CPP_STANDARD} CACHE STRING
|
||||||
"C++ standard flag, e.g. -std=c++11 or -std=c++14. Defaults to latest available.")
|
"C++ standard flag, e.g. -std=c++11 or -std=c++14. Defaults to latest available." FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Cache variables so pybind11_add_module can be used in parent projects
|
# Cache variables so pybind11_add_module can be used in parent projects
|
||||||
|
Loading…
Reference in New Issue
Block a user