Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Be sure we can execute some scripts before use mainainer mode.
[simgrid.git] / buildtools / Cmake / src / CMakeFLEXml.txt
index 84d1d32..f71d198 100644 (file)
@@ -5,6 +5,7 @@ message("_______________________________________________________________________
 find_program(FLEX_EXE NAMES flex)
 find_program(FLEXML_EXE NAMES flexml)
 find_program(SED_EXE NAMES sed)
+find_program(PERL_EXE NAMES perl)
 
 message("  FLEX :      ${FLEX_EXE}")
 message("FLEXML :      ${FLEXML_EXE}")
@@ -23,6 +24,10 @@ ENDIF(FLEXML_EXE)
 
 if(HAVE_FLEXML AND HAVE_FLEX AND SED_EXE)
 
+foreach(file ${script_to_install})
+       exec_program("chmod a=rwx ${file}" OUTPUT_VARIABLE "OKITOKI")
+endforeach(file ${script_to_install})
+
 #surf/simgrid_dtd.l: $(srcdir)/surf/simgrid.dtd
 exec_program("mkdir -p surf")
 exec_program("${FLEXML_EXE} --root-tags platform -b 1000000 -P surfxml --sysid=simgrid.dtd -S surf/simgrid_dtd.l -L ${srcdir}/surf/simgrid.dtd"  "${PROJECT_DIRECTORY}/src/")
@@ -93,5 +98,39 @@ endif(HAVE_FLEXML AND HAVE_FLEX  AND SED_EXE)
 message("")
 message("________________________________________________________________________________")
 message("________________________________________________________________________________ FLEXML END")
+
+message("")
+message("________________________________________________________________________________")
+message("________________________________________________________________________________ SG_UNIT_EXTRACTOR")
+
+if(PERL_EXE)
+       message("   PERL :      ${PERL_EXE}\n")
+       exec_program("rm -f simgrid_units_main.c *_unit.c ${PROJECT_DIRECTORY}/src/simgrid_units_main.c ${PROJECT_DIRECTORY}/src/*_unit.c" "${PROJECT_DIRECTORY}/src/" OUTPUT_VARIABLE OKITOKI)
+
+       #$(TEST_UNITS): $(TEST_CFILES)
+       string(REPLACE ";" " " USE_TEST_CFILES "${TEST_CFILES}")
+       exec_program("${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl ${USE_TEST_CFILES}" "${PROJECT_DIRECTORY}/src/")
+
+       #@builddir@/simgrid_units_main.c: $(TEST_UNITS)
+       exec_program("${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl ${PROJECT_DIRECTORY}/src/xbt/cunit.c" "${PROJECT_DIRECTORY}/src/")
+
+       #clean-units:
+       foreach(file ${TEST_UNITS})
+               exec_program("echo ${file}|sed -e 's|.c$$|.Po|' -e 's|[^/]*/||' -e 's|^|.deps/|'" "${PROJECT_DIRECTORY}/src/" OUTPUT_VARIABLE dep)
+               exec_program("echo \"Removing dependency tracker of ${file} (${dep} ${PROJECT_DIRECTORY}/src/${dep})\"" OUTPUT_VARIABLE OKITOKI)
+               message("${OKITOKI}")
+               exec_program("rm -vf ${dep} ${PROJECT_DIRECTORY}/src/${dep}" "${PROJECT_DIRECTORY}/src/" OUTPUT_VARIABLE OKITOKI)
+               exec_program("touch ${dep}" "${PROJECT_DIRECTORY}/src/" OUTPUT_VARIABLE OKITOKI)
+       endforeach(file ${TEST_UNITS})
+else(PERL_EXE)
+       message(FATAL_ERROR "Install perl before use maintainer mode")
+endif(PERL_EXE)
+message("")
+message("________________________________________________________________________________")
+message("________________________________________________________________________________ SG_UNIT_EXTRACTOR END")
+
+foreach(file ${SRC_TO_LOOK})
+       configure_file(${file} ${file} COPYONLY)
+endforeach(file ${SRC_TO_LOOK})
 endif(enable_maintainer_mode)