set(libsimgrid_version "${release_version}")
# Basic checks on cmake
-cmake_minimum_required(VERSION 3.5)
-#for lto, to avoid warning (should be removed when switching to requiring cmake >= 3.9)
-if(NOT CMAKE_VERSION VERSION_LESS "3.9")
- cmake_policy(SET CMP0069 NEW)
-endif()
-# once we move >= 3.13, we should use target_link_option in examples/sthread
+cmake_minimum_required(VERSION 3.12)
+# once we move CMake to >= 3.13, we should use target_link_option in examples/sthread
message(STATUS "Cmake version ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_HOME_DIRECTORY}/tools/cmake/Modules)
endif()
# tesh.py needs python 3 (or the module python-subprocess32 on python2.8+)
-if(CMAKE_VERSION VERSION_LESS "3.12")
- set(PythonInterp_FIND_VERSION 3)
- 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) to compile SimGrid.")
- endif()
-else()
- find_package(Python3 COMPONENTS Interpreter Development)
- if(NOT Python3_Interpreter_FOUND)
- message(FATAL_ERROR "Please install Python (version 3 or higher) to compile SimGrid.")
- endif()
- set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
+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(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
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)