X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b7242b68db364ebb1e2b011d27528767384bdd85..3a8a41d353f154422a95e78218a2496ab90ef471:/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 3d9417b9e2..c03d4e1528 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -139,7 +139,7 @@ set(PythonInterp_FIND_VERSION_COUNT 1) set(PythonInterp_FIND_VERSION_MAJOR 3) include(FindPythonInterp) if(NOT PYTHONINTERP_FOUND) - message(FATAL_ERROR "Please install Python (version 3 or higher).") + message(FATAL_ERROR "Please install Python (version 3 or higher) to compile SimGrid.") endif() SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib) @@ -254,7 +254,7 @@ else() endif() endif() -# cmake up to 3.12.3 (at least) does not know about stacktrace components. Inform it. +# cmake before 3.13.1 does not know about stacktrace components. Fix it. # Usable components: https://www.boost.org/doc/libs/1_65_1/doc/html/stacktrace/configuration_and_build.html set(_Boost_STACKTRACE_HEADERS "boost/stacktrace.hpp") set(_Boost_STACKTRACE_BACKTRACE_HEADERS "boost/stacktrace.hpp") @@ -847,6 +847,25 @@ if(enable_java) include(${CMAKE_HOME_DIRECTORY}/tools/cmake/Java.cmake) endif() +# Python binding, generated with pybind11 +set(PYBIND11_CPP_STANDARD -std=c++11) +find_package(pybind11 2.2.0) +if(NOT PYTHONLIBS_FOUND) + set(pybind11_FOUND OFF) +endif() +option(enable_python "Whether the Python bindings are activated." ${pybind11_FOUND}) # ON by default if dependencies are met + +if(enable_python) + if(pybind11_FOUND) + pybind11_add_module(simgrid_python src/bindings/python/simgrid_python.cpp) + set_source_files_properties(src/bindings/python/simgrid_python.cpp PROPERTIES COMPILE_FLAGS -std=c++14) + target_link_libraries(simgrid_python PUBLIC simgrid) + set_target_properties(simgrid_python PROPERTIES LIBRARY_OUTPUT_NAME simgrid) + else() + message(FATAL_ERROR "Please install pybind11-dev to build the Python bindings (or disable that option).") + endif() +endif() + ### Make tests if(enable_memcheck_xml) set(enable_memcheck true) @@ -938,6 +957,12 @@ if (${Java_FOUND}) else() message(" Compile Java ................: NO") endif() +if(pybind11_FOUND) + message(" Compile Python bindings .....: ${enable_python}") + message(" module ....................: ${PYTHON_MODULE_PREFIX}simgrid${PYTHON_MODULE_EXTENSION}") +else() + message(" Compile Python bindings .....: NO (disabled, or pybind11 not found)") +endif() message(" Compile Lua .................: ${SIMGRID_HAVE_LUA}") message(" Compile Smpi ................: ${HAVE_SMPI}") message(" Smpi fortran ..............: ${SMPI_FORTRAN}")