X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ec2dc5f98ef802d9a03762d5062f397729059b3c..fe39610cd8c7b073a712d1405588512331c4c6d7:/buildtools/Cmake/MaintainerMode.cmake diff --git a/buildtools/Cmake/MaintainerMode.cmake b/buildtools/Cmake/MaintainerMode.cmake index 8838e46c7a..3157bee9b6 100644 --- a/buildtools/Cmake/MaintainerMode.cmake +++ b/buildtools/Cmake/MaintainerMode.cmake @@ -2,14 +2,23 @@ if(enable_maintainer_mode AND NOT WIN32) find_program(FLEX_EXE NAMES flex) find_program(FLEXML_EXE NAMES flexml) find_program(SED_EXE NAMES sed) -find_program(PERL_EXE NAMES perl) IF(FLEX_EXE) set(HAVE_FLEX 1) + exec_program("${FLEX_EXE} --version" OUTPUT_VARIABLE FLEX_VERSION) + string(REGEX MATCH "[0-9]+[.]+[0-9]+[.]+[0-9]+" FLEX_VERSION "${FLEX_VERSION}") + string(REGEX MATCH "^[0-9]+" FLEX_MAJOR_VERSION "${FLEX_VERSION}") + string(REGEX MATCH "[0-9]+[.]+[0-9]+$" FLEX_VERSION "${FLEX_VERSION}") + string(REGEX MATCH "^[0-9]+" FLEX_MINOR_VERSION "${FLEX_VERSION}") + string(REGEX MATCH "[0-9]+$" FLEX_PATCH_VERSION "${FLEX_VERSION}") ENDIF(FLEX_EXE) IF(FLEXML_EXE) set(HAVE_FLEXML 1) + exec_program("${FLEXML_EXE} --version" OUTPUT_VARIABLE FLEXML_VERSION) + string(REGEX MATCH "[0-9]+[.]+[0-9]+" FLEXML_VERSION "${FLEXML_VERSION}") + string(REGEX MATCH "^[0-9]*" FLEXML_MAJOR_VERSION "${FLEXML_VERSION}") + string(REGEX MATCH "[0-9]*$" FLEXML_MINOR_VERSION "${FLEXML_VERSION}") ENDIF(FLEXML_EXE) if(HAVE_FLEXML AND HAVE_FLEX AND SED_EXE) @@ -109,90 +118,20 @@ else(HAVE_FLEXML AND HAVE_FLEX AND SED_EXE) message(" FLEX : ${FLEX_EXE}") message("FLEXML : ${FLEXML_EXE}") message(" SED : ${SED_EXE}") - message(FATAL_ERROR "Install flex or flexml or sed before use maintainer mode") -endif(HAVE_FLEXML AND HAVE_FLEX AND SED_EXE) - -if(PERL_EXE) - - ADD_CUSTOM_COMMAND( - OUTPUT ${PROJECT_DIRECTORY}/src/cunit_unit.c - ${PROJECT_DIRECTORY}/src/ex_unit.c - ${PROJECT_DIRECTORY}/src/dynar_unit.c - ${PROJECT_DIRECTORY}/src/dict_unit.c - ${PROJECT_DIRECTORY}/src/set_unit.c - ${PROJECT_DIRECTORY}/src/swag_unit.c - ${PROJECT_DIRECTORY}/src/xbt_str_unit.c - ${PROJECT_DIRECTORY}/src/xbt_strbuff_unit.c - ${PROJECT_DIRECTORY}/src/xbt_sha_unit.c - ${PROJECT_DIRECTORY}/src/config_unit.c - ${PROJECT_DIRECTORY}/src/xbt_synchro_unit.c - - DEPENDS ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl - ${PROJECT_DIRECTORY}/src/xbt/cunit.c - ${PROJECT_DIRECTORY}/src/xbt/ex.c - ${PROJECT_DIRECTORY}/src/xbt/dynar.c - ${PROJECT_DIRECTORY}/src/xbt/dict.c - ${PROJECT_DIRECTORY}/src/xbt/set.c - ${PROJECT_DIRECTORY}/src/xbt/swag.c - ${PROJECT_DIRECTORY}/src/xbt/xbt_str.c - ${PROJECT_DIRECTORY}/src/xbt/xbt_strbuff.c - ${PROJECT_DIRECTORY}/src/xbt/xbt_sha.c - ${PROJECT_DIRECTORY}/src/xbt/config.c - ${PROJECT_DIRECTORY}/src/xbt/xbt_synchro.c - - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/simgrid_units_main.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/cunit_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/ex_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/dynar_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/dict_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/set_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/swag_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/xbt_str_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/xbt_strbuff_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/xbt_sha_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/config_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/xbt_synchro_unit.c - - COMMAND chmod a=rwx ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl - - #$(TEST_UNITS): $(TEST_CFILES) - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/cunit.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/ex.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/dynar.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/dict.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/set.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/swag.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/xbt_str.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/xbt_strbuff.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/xbt_sha.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/config.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/xbt_synchro.c - - #@builddir@/simgrid_units_main.c: $(TEST_UNITS) - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/cunit.c - WORKING_DIRECTORY ${PROJECT_DIRECTORY}/src + if(NOT HAVE_FLEXML) + message("Install flexml before use maintainer mode.") + endif(NOT HAVE_FLEXML) + if(NOT HAVE_FLEX) + message("Install flex before use maintainer mode.") + endif(NOT HAVE_FLEX) + if(NOT SED_EXE) + message("Install sed before use maintainer mode.") + endif(NOT SED_EXE) - COMMENT "Generating *_units files for testall..." - ) - - add_custom_target(units_files - DEPENDS ${PROJECT_DIRECTORY}/src/cunit_unit.c - ${PROJECT_DIRECTORY}/src/ex_unit.c - ${PROJECT_DIRECTORY}/src/dynar_unit.c - ${PROJECT_DIRECTORY}/src/dict_unit.c - ${PROJECT_DIRECTORY}/src/set_unit.c - ${PROJECT_DIRECTORY}/src/swag_unit.c - ${PROJECT_DIRECTORY}/src/xbt_str_unit.c - ${PROJECT_DIRECTORY}/src/xbt_strbuff_unit.c - ${PROJECT_DIRECTORY}/src/xbt_sha_unit.c - ${PROJECT_DIRECTORY}/src/config_unit.c - ${PROJECT_DIRECTORY}/src/xbt_synchro_unit.c - ) - -else(PERL_EXE) - message(FATAL_ERROR "Install perl before use maintainer mode") -endif(PERL_EXE) + message(FATAL_ERROR "Need to install all tools for maintainer mode !!!") +endif(HAVE_FLEXML AND HAVE_FLEX AND SED_EXE) + endif(enable_maintainer_mode AND NOT WIN32)