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()
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.")
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)
- 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)