From 896de8147508ef9d950e94d5103a0d389ec47ca0 Mon Sep 17 00:00:00 2001 From: Christian Heinrich Date: Mon, 23 May 2016 15:01:33 +0200 Subject: [PATCH] [CMAKE/SMPI] Automatically generate header files for call location tracing. The generated header files are still under version control. Maybe we need to remove them? --- tools/cmake/MaintainerMode.cmake | 25 +++++++++++++++++++++++++ tools/cmake/MakeLib.cmake | 3 +++ 2 files changed, 28 insertions(+) diff --git a/tools/cmake/MaintainerMode.cmake b/tools/cmake/MaintainerMode.cmake index d7ce7eb303..b9b81e965a 100644 --- a/tools/cmake/MaintainerMode.cmake +++ b/tools/cmake/MaintainerMode.cmake @@ -43,6 +43,31 @@ if(enable_maintainer_mode AND NOT WIN32) endif() endif() +# Let's generate header files required by SMPI when the call location tracing +# has been activated. +if(enable_maintainer_mode AND NOT WIN32) + add_custom_command(OUTPUT ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_extended_traces.h + ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_extended_traces_fortran.h + + COMMENT "Generating header files for call-location tracing with SMPI" + # Make sure there is no space after the redirection operator (>). I received + # error messages in that case on my Debian system. + COMMAND "${CMAKE_HOME_DIRECTORY}/tools/smpi/generate_smpi_defines.pl" "${CMAKE_HOME_DIRECTORY}/include/smpi/smpi.h >${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_extended_traces.h" + COMMAND "${CMAKE_HOME_DIRECTORY}/tools/smpi/generate_smpi_defines.pl" "-f" "${CMAKE_HOME_DIRECTORY}/include/smpi/smpi.h >${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_extended_traces_fortran.h" + ) + + add_custom_target(smpi_generated_headers_call_location_tracing + DEPENDS + ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_extended_traces.h + ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_extended_traces_fortran.h + ) + + SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES + "${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_extended_traces.h" + "${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_extended_traces_fortran.h" + ) +endif() + if(enable_maintainer_mode AND NOT WIN32) find_program(FLEX_EXE NAMES flex) find_program(FLEXML_EXE NAMES flexml) diff --git a/tools/cmake/MakeLib.cmake b/tools/cmake/MakeLib.cmake index ed62a97fe9..29c3b563fc 100644 --- a/tools/cmake/MakeLib.cmake +++ b/tools/cmake/MakeLib.cmake @@ -109,6 +109,9 @@ target_link_libraries(simgrid ${SIMGRID_DEP}) # Dependencies from maintainer mode ################################### +if(enable_maintainer_mode) + add_dependencies(simgrid smpi_generated_headers_call_location_tracing) +endif() if(enable_maintainer_mode AND PYTHON_EXE) add_dependencies(simgrid simcalls_generated_src) endif() -- 2.20.1