From dd3d56a8851551fc68fe6c52c4b0f35fe3a77b9b Mon Sep 17 00:00:00 2001 From: Jason Rhinelander Date: Fri, 26 Aug 2016 17:11:40 -0400 Subject: [PATCH] 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. --- .travis.yml | 6 +++--- tests/CMakeLists.txt | 14 ++------------ 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/.travis.yml b/.travis.yml index fac13a815..4dd3d8e2a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,7 +34,7 @@ matrix: apt: sources: [ubuntu-toolchain-r-test, kubuntu-backports] packages: [g++-4.8, cmake] - install: false + install: pip install pytest # Documentation build: - os: linux language: docs @@ -90,10 +90,10 @@ install: # 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 \ + python$PYTHON-dev python$PY-pytest python$PY-scipy \ libeigen3-dev cmake make g++ 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 tar xzf eigen.tar.gz diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index dbf64c46b..5841d82e6 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -58,7 +58,7 @@ if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY) endforeach() 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) execute_process(COMMAND ${PYTHON_EXECUTABLE} -m ${ARGN} OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE pybind11_execute_python_error) @@ -67,17 +67,7 @@ endmacro() if(NOT PYBIND11_PYTEST_FOUND) pybind11_execute_python(pytest --version --noconftest) if(pybind11_execute_python_error) - message(STATUS "Installing pytest using pip") - 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() + message(FATAL_ERROR "Running the tests requires pytest. Please install it manually (try: ${PYTHON_EXECUTABLE} -m pip install pytest)") endif() set(PYBIND11_PYTEST_FOUND TRUE CACHE INTERAL "")