From 33c95f70c8fea416a7ddbb909a6da47cf54b3e35 Mon Sep 17 00:00:00 2001 From: Millian Poquet Date: Thu, 16 May 2019 13:45:49 +0200 Subject: [PATCH] [cmake] no search for pybind11 if explicitly off --- CMakeLists.txt | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f8fdcbca02..9c1da7af87 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -768,34 +768,36 @@ endif() # Python binding (with pybind11) ################ # Our usage of pybind11::overload_cast mandates C++14 -get_property(known_features GLOBAL PROPERTY CMAKE_CXX_KNOWN_FEATURES) +if((NOT DEFINED enable_python) OR enable_python) + get_property(known_features GLOBAL PROPERTY CMAKE_CXX_KNOWN_FEATURES) -if("cxx_std_14" IN_LIST known_features) + if("cxx_std_14" IN_LIST known_features) - if(EXISTS ${CMAKE_HOME_DIRECTORY}/pybind11) # Try to use a local copy of pybind11, if any - message(STATUS "Use the internal copy of pybind11 (using C++14).") - add_subdirectory(${CMAKE_HOME_DIRECTORY}/pybind11) - set(pybind11_FOUND ON) - - set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_HOME_DIRECTORY}/pybind11/tools/) - set(Python_ADDITIONAL_VERSIONS 3.7 3.6 3.5 3.4) - find_package(PythonLibsNew ${PYBIND11_PYTHON_VERSION} REQUIRED) - - else() - find_package(pybind11 2.2.0) - endif() - - if(NOT PYTHONLIBS_FOUND) - message(STATUS "Python libs not found. Turn pybind11 off.") + if(EXISTS ${CMAKE_HOME_DIRECTORY}/pybind11) # Try to use a local copy of pybind11, if any + message(STATUS "Use the internal copy of pybind11 (using C++14).") + add_subdirectory(${CMAKE_HOME_DIRECTORY}/pybind11) + set(pybind11_FOUND ON) + + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_HOME_DIRECTORY}/pybind11/tools/) + set(Python_ADDITIONAL_VERSIONS 3.7 3.6 3.5 3.4) + find_package(PythonLibsNew ${PYBIND11_PYTHON_VERSION} REQUIRED) + else() + find_package(pybind11 2.2.0) + endif() + + if(NOT PYTHONLIBS_FOUND) + message(STATUS "Python libs not found. Turn pybind11 off.") + + set(pybind11_FOUND OFF) + endif() + + else() + message(STATUS "No support for C++14 detected, don't even search for pybind11.") set(pybind11_FOUND OFF) endif() - -else() - message(STATUS "No support for C++14 detected, don't even search for pybind11.") - set(pybind11_FOUND OFF) + unset(known_features) endif() -unset(known_features) option(enable_python "Whether the Python bindings are activated." ${pybind11_FOUND}) # ON by default if dependencies are met -- 2.20.1