"example/example-inheritance.py" did not exist on "d7efa4ff7b04f987cdb3a3a9d1649be8f0a78bc1"
Commit dd3d56a8 authored by Jason Rhinelander's avatar Jason Rhinelander
Browse files

Don't install pytest from cmake, just fail instead

Installing something outside the project directory from a cmake
invocation is overly intrusive; this changes tests/CMakeLists.txt to
just fail with an informative message instead, and changes the
travis-ci builds to install pytest via pip or apt-get.
parent 324c9c52
...@@ -34,7 +34,7 @@ matrix: ...@@ -34,7 +34,7 @@ matrix:
apt: apt:
sources: [ubuntu-toolchain-r-test, kubuntu-backports] sources: [ubuntu-toolchain-r-test, kubuntu-backports]
packages: [g++-4.8, cmake] packages: [g++-4.8, cmake]
install: false install: pip install pytest
# Documentation build: # Documentation build:
- os: linux - os: linux
language: docs language: docs
...@@ -90,10 +90,10 @@ install: ...@@ -90,10 +90,10 @@ install:
# Install dependencies # Install dependencies
if [ -n "$DOCKER" ]; then if [ -n "$DOCKER" ]; then
docker exec --tty "$containerid" apt-get -y --no-install-recommends install \ docker exec --tty "$containerid" apt-get -y --no-install-recommends install \
python$PYTHON-dev python$PY-pip python$PY-setuptools python$PY-scipy \ python$PYTHON-dev python$PY-pytest python$PY-scipy \
libeigen3-dev cmake make g++ libeigen3-dev cmake make g++
else else
pip install numpy scipy pip install numpy scipy pytest
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
......
...@@ -58,7 +58,7 @@ if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY) ...@@ -58,7 +58,7 @@ if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
endforeach() endforeach()
endif() endif()
# Make sure pytest is found or try to install it if it's not found # Make sure pytest is found or produce a fatal error
macro(pybind11_execute_python) macro(pybind11_execute_python)
execute_process(COMMAND ${PYTHON_EXECUTABLE} -m ${ARGN} OUTPUT_QUIET ERROR_QUIET execute_process(COMMAND ${PYTHON_EXECUTABLE} -m ${ARGN} OUTPUT_QUIET ERROR_QUIET
RESULT_VARIABLE pybind11_execute_python_error) RESULT_VARIABLE pybind11_execute_python_error)
...@@ -67,17 +67,7 @@ endmacro() ...@@ -67,17 +67,7 @@ endmacro()
if(NOT PYBIND11_PYTEST_FOUND) if(NOT PYBIND11_PYTEST_FOUND)
pybind11_execute_python(pytest --version --noconftest) pybind11_execute_python(pytest --version --noconftest)
if(pybind11_execute_python_error) if(pybind11_execute_python_error)
message(STATUS "Installing pytest using pip") message(FATAL_ERROR "Running the tests requires pytest. Please install it manually (try: ${PYTHON_EXECUTABLE} -m pip install pytest)")
pybind11_execute_python(pip install pytest)
if(pybind11_execute_python_error)
message(STATUS "Installing pytest using pip --user (fallback)")
pybind11_execute_python(pip install --user pytest)
endif()
pybind11_execute_python(pytest --version --noconftest)
if(pybind11_execute_python_error)
message(FATAL_ERROR "Running the tests requires pytest. Please install it manually.")
endif()
endif() endif()
set(PYBIND11_PYTEST_FOUND TRUE CACHE INTERAL "") set(PYBIND11_PYTEST_FOUND TRUE CACHE INTERAL "")
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment