# If the test ran well, remove the test binary
execute_process(COMMAND ${CMAKE_COMMAND} -E remove test_stackgrowth)
-###############
-## System checks
-##
-
### check for addr2line
-find_path(ADDR2LINE NAMES addr2line PATHS NO_DEFAULT_PATHS )
+find_path(ADDR2LINE NAMES addr2line PATHS NO_DEFAULT_PATHS)
if(ADDR2LINE)
set(ADDR2LINE "${ADDR2LINE}/addr2line")
endif()
-### File to create
+### Generate the required headers and scripts
+#############################################
+configure_file("${CMAKE_HOME_DIRECTORY}/tools/cmake/src/internal_config.h.in" "${CMAKE_BINARY_DIR}/src/internal_config.h" @ONLY IMMEDIATE)
+configure_file("${CMAKE_HOME_DIRECTORY}/include/simgrid_config.h.in" "${CMAKE_BINARY_DIR}/include/simgrid_config.h" @ONLY IMMEDIATE)
-SET( CMAKEDEFINE "#cmakedefine" )
-configure_file("${CMAKE_HOME_DIRECTORY}/tools/cmake/src/internal_config.h.in" "${CMAKE_BINARY_DIR}/src/internal_config.h" @ONLY IMMEDIATE)
-configure_file("${CMAKE_BINARY_DIR}/src/internal_config.h" "${CMAKE_BINARY_DIR}/src/internal_config.h" @ONLY IMMEDIATE)
-configure_file("${CMAKE_HOME_DIRECTORY}/include/simgrid_config.h.in" "${CMAKE_BINARY_DIR}/include/simgrid_config.h" @ONLY IMMEDIATE)
+# We need two versions of the SMPI scripts because they contain the path to the library
+# so, it depends of whether SimGrid is installed, or run from the sources (during the build)
+file(READ ${CMAKE_HOME_DIRECTORY}/src/smpi/smpitools.sh SMPITOOLS_SH) # Definitions shared amongst all scripts, inlined in each of them
-set(top_srcdir "${CMAKE_HOME_DIRECTORY}")
-set(srcdir "${CMAKE_HOME_DIRECTORY}/src")
-set(bindir "${CMAKE_BINARY_DIR}")
-
-### Script used when simgrid is installed
+### SMPI script used when simgrid is installed
set(exec_prefix ${CMAKE_INSTALL_PREFIX})
set(includeflag "-I${CMAKE_INSTALL_PREFIX}/include -I${CMAKE_INSTALL_PREFIX}/include/smpi")
set(includedir "${CMAKE_INSTALL_PREFIX}/include")
endif()
set(CMAKE_SMPI_COMMAND "${CMAKE_SMPI_COMMAND}:\${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}\"")
-file(READ ${CMAKE_HOME_DIRECTORY}/src/smpi/smpitools.sh SMPITOOLS_SH)
configure_file(${CMAKE_HOME_DIRECTORY}/include/smpi/mpif.h.in ${CMAKE_BINARY_DIR}/include/smpi/mpif.h @ONLY)
-configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpicc.in ${CMAKE_BINARY_DIR}/bin/smpicc @ONLY)
-configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpicxx.in ${CMAKE_BINARY_DIR}/bin/smpicxx @ONLY)
-configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpiff.in ${CMAKE_BINARY_DIR}/bin/smpiff @ONLY)
-configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpif90.in ${CMAKE_BINARY_DIR}/bin/smpif90 @ONLY)
-configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpirun.in ${CMAKE_BINARY_DIR}/bin/smpirun @ONLY)
+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()
-### Script used when simgrid is compiling
+### SMPI scripts used when compiling simgrid
+set(exec_prefix "${CMAKE_BINARY_DIR}/smpi_script/")
set(includeflag "-I${CMAKE_HOME_DIRECTORY}/include -I${CMAKE_HOME_DIRECTORY}/include/smpi")
set(includeflag "${includeflag} -I${CMAKE_BINARY_DIR}/include -I${CMAKE_BINARY_DIR}/include/smpi")
set(includedir "${CMAKE_HOME_DIRECTORY}/include")
-set(exec_prefix "${CMAKE_BINARY_DIR}/smpi_script/")
+set(libdir "${CMAKE_BINARY_DIR}/lib")
set(CMAKE_SMPI_COMMAND "export LD_LIBRARY_PATH=\"${CMAKE_BINARY_DIR}/lib")
if(NS3_LIBRARY_PATH)
set(CMAKE_SMPI_COMMAND "${CMAKE_SMPI_COMMAND}:${NS3_LIBRARY_PATH}")
endif()
set(CMAKE_SMPI_COMMAND "${CMAKE_SMPI_COMMAND}:\${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}\"")
-set(libdir "${CMAKE_BINARY_DIR}/lib")
-configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpicc.in ${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc @ONLY)
-configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpicxx.in ${CMAKE_BINARY_DIR}/smpi_script/bin/smpicxx @ONLY)
-configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpiff.in ${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff @ONLY)
-configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpif90.in ${CMAKE_BINARY_DIR}/smpi_script/bin/smpif90 @ONLY)
-configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpirun.in ${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun @ONLY)
-
-set(top_builddir ${CMAKE_HOME_DIRECTORY})
+foreach(script cc cxx ff f90 run)
+ configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpi${script}.in ${CMAKE_BINARY_DIR}/smpi_script/bin/smpi${script} @ONLY)
+endforeach()
if(NOT WIN32)
- execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpicc)
- execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpicxx)
- execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpiff)
- execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpif90)
- execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpirun)
- execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc)
- execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/smpi_script/bin/smpicxx)
- execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff)
- execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/smpi_script/bin/smpif90)
- execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun)
+ foreach(script cc cxx ff f90 run)
+ execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpi${script})
+ execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/smpi_script/bin/smpi${script})
+ endforeach()
endif()
set(generated_headers_to_install
# If left blank the directory from which doxygen is run is used as the
# path to strip.
-STRIP_FROM_PATH = @top_srcdir@
+STRIP_FROM_PATH = @CMAKE_HOME_DIRECTORY@
# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
# the path mentioned in the documentation of a class, which tells
doxygen/module-smpi.doc \
doxygen/module-trace.doc \
index-API.doc \
- @top_srcdir@/doc/doxygen/logcategories.doc \
- @top_srcdir@/src/instr/ \
- @bindir@/include \
- @top_srcdir@/include/ \
- @top_srcdir@/include/xbt \
- @top_srcdir@/include/simgrid \
- @top_srcdir@/src/include/surf \
- @top_srcdir@/src/xbt/ \
- @top_srcdir@/src/surf/ \
- @top_srcdir@/src/surf/plugins/ \
- @top_srcdir@/src/s4u/ \
- @top_srcdir@/src/msg/ \
- @top_srcdir@/src/smpi/ \
- @top_srcdir@/src/simdag \
- @top_srcdir@/src/simix \
- @bindir@/src
+ @CMAKE_HOME_DIRECTORY@/doc/doxygen/logcategories.doc \
+ @CMAKE_HOME_DIRECTORY@/src/instr/ \
+ @CMAKE_HOME_DIRECTORY@/include/ \
+ @CMAKE_HOME_DIRECTORY@/include/xbt \
+ @CMAKE_HOME_DIRECTORY@/include/simgrid \
+ @CMAKE_HOME_DIRECTORY@/src/include/surf \
+ @CMAKE_HOME_DIRECTORY@/src/xbt/ \
+ @CMAKE_HOME_DIRECTORY@/src/surf/ \
+ @CMAKE_HOME_DIRECTORY@/src/surf/plugins/ \
+ @CMAKE_HOME_DIRECTORY@/src/s4u/ \
+ @CMAKE_HOME_DIRECTORY@/src/msg/ \
+ @CMAKE_HOME_DIRECTORY@/src/smpi/ \
+ @CMAKE_HOME_DIRECTORY@/src/simdag \
+ @CMAKE_HOME_DIRECTORY@/src/simix \
+ @CMAKE_BINARY_DIR@/include \
+ @CMAKE_BINARY_DIR@/src
###################################################
## PLEASE DON'T MESS WITH THE ORDER OF EXAMPLES ## (unless you know what you are doing, of course)
###################################################
-INPUT += @top_srcdir@/examples/msg/sendrecv/sendrecv.c \
- @top_srcdir@/examples/msg/masterslave/masterslave_forwarder.c \
- @top_srcdir@/examples/msg/migration \
- @top_srcdir@/examples/msg/suspend \
- @top_srcdir@/examples/msg/properties \
- @top_srcdir@/examples/msg/parallel_task \
- @top_srcdir@/examples/msg/priority \
- @top_srcdir@/examples/msg/icomms/peer.c \
- @top_srcdir@/examples/msg/icomms/peer2.c \
- @top_srcdir@/examples/msg/icomms/peer3.c \
- @top_srcdir@/examples/msg/tracing/simple.c \
- @top_srcdir@/examples/msg/tracing/ms.c \
- @top_srcdir@/examples/msg/tracing/categories.c \
- @top_srcdir@/examples/msg/tracing/procmig.c \
- @top_srcdir@/examples/msg/tracing/trace_platform.c \
- @top_srcdir@/examples/msg/tracing/user_variables.c \
- @top_srcdir@/examples/msg/tracing/link_user_variables.c \
- @top_srcdir@/examples/msg/tracing/link_srcdst_user_variables.c \
- @top_srcdir@/examples/msg/ns3 \
- @top_srcdir@/examples/msg/io \
- @top_srcdir@/examples/msg/gpu \
- @top_srcdir@/examples/msg/actions \
- @top_srcdir@/examples/msg/token_ring \
- @top_srcdir@/examples/msg/pmm \
- @top_srcdir@/examples/msg/chord
+INPUT += @CMAKE_HOME_DIRECTORY@/examples/msg/sendrecv/sendrecv.c \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/masterslave/masterslave_forwarder.c \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/migration \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/suspend \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/properties \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/parallel_task \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/priority \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/icomms/peer.c \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/icomms/peer2.c \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/icomms/peer3.c \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/tracing/simple.c \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/tracing/ms.c \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/tracing/categories.c \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/tracing/procmig.c \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/tracing/trace_platform.c \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/tracing/user_variables.c \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/tracing/link_user_variables.c \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/tracing/link_srcdst_user_variables.c \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/ns3 \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/io \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/gpu \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/actions \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/token_ring \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/pmm \
+ @CMAKE_HOME_DIRECTORY@/examples/msg/chord
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
# the \include command).
EXAMPLE_PATH = ./ \
- @top_srcdir@/src/surf/ \
- @top_srcdir@/src/xbt/ \
- @top_srcdir@/examples \
- @top_srcdir@/doc/example_lists
+ @CMAKE_HOME_DIRECTORY@/src/surf/ \
+ @CMAKE_HOME_DIRECTORY@/src/xbt/ \
+ @CMAKE_HOME_DIRECTORY@/examples \
+ @CMAKE_HOME_DIRECTORY@/doc/example_lists
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# directories that contain image that are included in the documentation (see
# the \image command).
-IMAGE_PATH = @top_srcdir@/doc \
- @top_srcdir@/doc/webcruft
+IMAGE_PATH = @CMAKE_HOME_DIRECTORY@/doc \
+ @CMAKE_HOME_DIRECTORY@/doc/webcruft
# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program