From: Christian Heinrich Date: Mon, 23 May 2016 13:01:33 +0000 (+0200) Subject: [CMAKE/SMPI] Automatically generate header files for call location tracing. X-Git-Tag: v3_14~1175 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/896de8147508ef9d950e94d5103a0d389ec47ca0?ds=sidebyside [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? --- 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()