From a805c48862448771e5c0b108e9a150ba0a54ccc9 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Fri, 3 Mar 2023 23:50:05 +0100 Subject: [PATCH] python3-dev is another dependency of the Python bindings --- CMakeLists.txt | 19 ++++++++++++------- docs/source/Installing_SimGrid.rst | 2 +- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 96b38db6c2..1d9bb8b7d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -141,7 +141,7 @@ if(CMAKE_VERSION VERSION_LESS "3.12") message(FATAL_ERROR "Please install Python (version 3 or higher) to compile SimGrid.") endif() else() - find_package(Python3 COMPONENTS Interpreter Development) + find_package(Python3 COMPONENTS Interpreter) if(NOT Python3_Interpreter_FOUND) message(FATAL_ERROR "Please install Python (version 3 or higher) to compile SimGrid.") endif() @@ -769,15 +769,17 @@ if((NOT DEFINED enable_python) OR enable_python) set(pybind11_FOUND OFF) endif() endif() +endif() - if(NOT PYTHONLIBS_FOUND AND NOT Python3_Development_FOUND) - message(STATUS "Python libs not found. Turn pybind11 off.") - - set(pybind11_FOUND OFF) - endif() +find_package(Python3 COMPONENTS Development) +if(NOT Python3_Development_FOUND OR NOT pybind11_FOUND) + message(STATUS "SimGrid Python bindings cannot be built on this system.") + set(default_enable_python OFF) +else() + set(default_enable_python ON) endif() -option(enable_python "Whether the Python bindings are activated." ${pybind11_FOUND}) # ON by default if dependencies are met +option(enable_python "Whether the Python bindings are activated." ${default_enable_python}) # ON by default if dependencies are met if("${CMAKE_SYSTEM}" MATCHES "FreeBSD" AND enable_model-checking AND enable_python) message(WARNING "FreeBSD + Model-Checking + Python = too much for now. Disabling the Python bindings.") @@ -785,6 +787,9 @@ if("${CMAKE_SYSTEM}" MATCHES "FreeBSD" AND enable_model-checking AND enable_pyth endif() if(enable_python) + if(NOT Python3_Development_FOUND) + message(FATAL_ERROR "Please install the development components of Python (python3-dev on Debian) to build the Python bindings (or disable that option).") + endif() if(pybind11_FOUND) message(STATUS "Found pybind11.") if(NOT enable_lto) diff --git a/docs/source/Installing_SimGrid.rst b/docs/source/Installing_SimGrid.rst index 4a8d803070..adfb90ee6e 100644 --- a/docs/source/Installing_SimGrid.rst +++ b/docs/source/Installing_SimGrid.rst @@ -99,7 +99,7 @@ boost recommended components (optional). - boost-stacktrace is used to get nice stacktraces on errors in SimGrid. - On Debian / Ubuntu: ``apt install libboost-context-dev libboost-stacktrace-dev`` python bindings (optional): - - On Debian / Ubuntu: ``apt install pybind11-dev`` + - On Debian / Ubuntu: ``apt install pybind11-dev python3-dev`` Model-checking dependencies (optional) - On Debian / Ubuntu: ``apt install libunwind-dev libdw-dev libelf-dev libevent-dev`` Eigen3 (optional) -- 2.20.1