X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4e2035d7b4730d535ebd7619c4e85878f71f8cb2..c11ff67e793ea2ba851d7bad5ab3fbbc937e48b3:/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index b16aeab13a..3733e2bd18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,9 +79,9 @@ if ((NOT DEFINED enable_smpi) OR enable_smpi) endif() if(CMAKE_Fortran_COMPILER) + # Fortran compiler detected: save it, then replace by smpiff set(SMPI_Fortran_COMPILER "${CMAKE_Fortran_COMPILER}" CACHE FILEPATH "The real Fortran compiler") - set(CMAKE_Fortran_COMPILER smpiff) # Set flags/libs to be used in smpiff if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU") @@ -106,10 +106,10 @@ endif() set(SIMGRID_VERSION_MAJOR "3") set(SIMGRID_VERSION_MINOR "19") -set(SIMGRID_VERSION_PATCH "0") +set(SIMGRID_VERSION_PATCH "90") set(SIMGRID_VERSION_EXTRA "-DEVEL") # Extra words to add to version string (e.g. -rc1) -set(SIMGRID_VERSION_DATE "2017") # Year for copyright information +set(SIMGRID_VERSION_DATE "2018") # Year for copyright information if(${SIMGRID_VERSION_PATCH} EQUAL "0") set(release_version "${SIMGRID_VERSION_MAJOR}.${SIMGRID_VERSION_MINOR}") @@ -159,20 +159,26 @@ endif() SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib) ### Compute the include paths -set(INCLUDES + +# Only include public headers by default +include_directories( + ${CMAKE_BINARY_DIR}/include + ${CMAKE_HOME_DIRECTORY}/include +) + +# Compute the ones that should be added when compiling the library +set(INTERNAL_INCLUDES ${CMAKE_BINARY_DIR} - ${CMAKE_BINARY_DIR}/include ${CMAKE_HOME_DIRECTORY} - ${CMAKE_HOME_DIRECTORY}/include ${CMAKE_HOME_DIRECTORY}/src/include ) if(enable_smpi) - set (INCLUDES ${INCLUDES} ${CMAKE_HOME_DIRECTORY}/src/smpi/include) + set (INTERNAL_INCLUDES ${INTERNAL_INCLUDES} ${CMAKE_HOME_DIRECTORY}/src/smpi/include) endif() if(NOT CMAKE_CROSSCOMPILING AND EXISTS /usr/include/) - set(INCLUDES ${INCLUDES} /usr/include/) + set(INTERNAL_INCLUDES ${INTERNAL_INCLUDES} /usr/include/) endif() if(WIN32) @@ -180,12 +186,10 @@ if(WIN32) set(CMAKE_LIB_WIN "${CMAKE_C_COMPILER}") string(REGEX REPLACE "/bin/gcc.*" "/include" CMAKE_INCLUDE_WIN "${CMAKE_INCLUDE_WIN}") string(REGEX REPLACE "/bin/gcc.*" "/lib" CMAKE_LIB_WIN "${CMAKE_LIB_WIN}") - set(INCLUDES ${INCLUDES} ${CMAKE_INCLUDE_WIN}) + set(INTERNAL_INCLUDES ${INTERNAL_INCLUDES} ${CMAKE_INCLUDE_WIN}) unset(CMAKE_INCLUDE_WIN) endif() -include_directories(${INCLUDES}) - # library dependency cannot start with a space (CMP0004), so initialize it with something that is never desactivated. set(SIMGRID_DEP "-lm") @@ -618,10 +622,6 @@ endif() file(REMOVE test_stackgrowth) #-------------------------------------------------------------------------------------------------- -if(enable_address_sanitizer OR enable_thread_sanitizer OR enable_undefined_sanitizer) - set(HAVE_SANITIZER 1) -endif() - ### check for addr2line find_path(ADDR2LINE NAMES addr2line PATHS NO_DEFAULT_PATHS) if(ADDR2LINE) @@ -703,6 +703,16 @@ set(CMAKE_SMPI_COMMAND "${CMAKE_SMPI_COMMAND}:\${LD_LIBRARY_PATH:+:$LD_LIBRARY_P set(SMPIMAIN smpimain) configure_file(${CMAKE_HOME_DIRECTORY}/include/smpi/mpif.h.in ${CMAKE_BINARY_DIR}/include/smpi/mpif.h @ONLY) +#configure mpif.f90 to build mpi.mod +if(SMPI_FORTRAN) + set(MODULE_MPIF_IN "module mpi") + set(MODULE_MPIF_OUT "end module mpi") + configure_file(${CMAKE_HOME_DIRECTORY}/include/smpi/mpif.h.in ${CMAKE_BINARY_DIR}/src/smpi/mpif.f90.generated @ONLY) + execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/src/smpi/mpif.f90.generated ${CMAKE_BINARY_DIR}/src/smpi/mpif.f90) + set(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/include/smpi) + add_library(mpi SHARED ${CMAKE_BINARY_DIR}/src/smpi/mpif.f90) +endif() + foreach(script cc cxx ff f90 run) configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpi${script}.in ${CMAKE_BINARY_DIR}/bin/smpi${script} @ONLY) endforeach()