Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
modernize cabinet creation
[simgrid.git] / CMakeLists.txt
index 1af66cb..87a0e1e 100644 (file)
@@ -1,7 +1,7 @@
 # Build the version number
 
 set(SIMGRID_VERSION_MAJOR "3")
-set(SIMGRID_VERSION_MINOR "25")
+set(SIMGRID_VERSION_MINOR "27")
 set(SIMGRID_VERSION_PATCH "1") # odd => git branch; even => stable release or released snapshot
 
 if(${SIMGRID_VERSION_PATCH} EQUAL "0")
@@ -137,12 +137,20 @@ if(NOT PERL_FOUND)
 endif()
 
 # tesh.py needs python 3 (or the module python-subprocess32 on python2.8+)
-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.")
+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})
 endif()
 
 SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
@@ -229,6 +237,9 @@ set(SIMGRID_HAVE_NS3 0)
 if(enable_ns3)
   include(FindNS3)
   if (SIMGRID_HAVE_NS3)
+    if (NS3_VERSION VERSION_LESS "3.28")
+      message(FATAL_ERROR "SimGrid needs at least ns-3.28. Please upgrade or disable that cmake option.")
+    endif()
     set(SIMGRID_HAVE_NS3 1)
     foreach(lib core csma point-to-point internet network applications wifi)
       set(SIMGRID_DEP "${SIMGRID_DEP} -lns${NS3_VERSION}-${lib}${NS3_SUFFIX}")
@@ -641,6 +652,8 @@ if(NOT "${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_HOME_DIRECTORY}")
   configure_file(${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/hostfile ${CMAKE_BINARY_DIR}/teshsuite/smpi/hostfile COPYONLY)
   configure_file(${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/hostfile_cluster ${CMAKE_BINARY_DIR}/teshsuite/smpi/hostfile_cluster COPYONLY)
   configure_file(${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/hostfile_coll ${CMAKE_BINARY_DIR}/teshsuite/smpi/hostfile_coll COPYONLY)
+  configure_file(${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/hostfile_io ${CMAKE_BINARY_DIR}/teshsuite/smpi/hostfile_io COPYONLY)
+  configure_file(${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/hostfile_empty ${CMAKE_BINARY_DIR}/teshsuite/smpi/hostfile_empty COPYONLY)
 
   configure_file(${CMAKE_HOME_DIRECTORY}/examples/smpi/replay_multiple/description_file ${CMAKE_BINARY_DIR}/examples/smpi/replay_multiple/description_file COPYONLY)
   configure_file(${CMAKE_HOME_DIRECTORY}/examples/smpi/replay_multiple/README ${CMAKE_BINARY_DIR}/examples/smpi/replay_multiple/README COPYONLY)
@@ -775,7 +788,9 @@ endif()
 SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
   "${generated_files_to_clean}")
 
-add_custom_target(tests COMMENT "Recompiling the tests")
+add_custom_target(tests    COMMENT "Recompiling the tests")
+add_custom_target(tests-mc COMMENT "Recompiling the MC tests and tools.")
+add_dependencies(tests tests-mc)
 
 ### Build some Maintainer files
 include(${CMAKE_HOME_DIRECTORY}/tools/cmake/MaintainerMode.cmake)
@@ -800,7 +815,7 @@ if((NOT DEFINED enable_python) OR enable_python)
     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)
+    set(Python_ADDITIONAL_VERSIONS 3.9 3.8 3.7 3.6 3.5 3.4)
     find_package(PythonLibsNew ${PYBIND11_PYTHON_VERSION} REQUIRED)
 
   else()
@@ -812,7 +827,7 @@ if((NOT DEFINED enable_python) OR enable_python)
     endif()
   endif()
 
-  if(NOT PYTHONLIBS_FOUND)
+  if(NOT PYTHONLIBS_FOUND AND NOT Python3_Development_FOUND)
     message(STATUS "Python libs not found. Turn pybind11 off.")
 
     set(pybind11_FOUND OFF)