Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix test out of directory for smpi mpich
[simgrid.git] / buildtools / Cmake / Supernovae.cmake
index a798e33..ec68d3c 100644 (file)
@@ -3,74 +3,69 @@
 #############################################################################
 ### Add here every files that should not be supernovaed (generated files) ###
 #############################################################################
-set(simgrid_fragile_sources 
-       src/gras/DataDesc/ddt_parse.yy.c
-       src/surf/surfxml_parse.c
-       src/xbt/graphxml_parse.c
-       src/simdag/sd_daxloader.c
-)
+set(simgrid_fragile_sources
+  src/simdag/sd_daxloader.c
+  src/surf/surfxml_parse.c
+  src/xbt/datadesc/ddt_parse.yy.c
+  src/xbt/graphxml_parse.c
+  src/xbt/mmalloc/mm.c
+  ${GTNETS_USED}
+  )
 set(gras_fragile_sources
-       src/gras/DataDesc/ddt_parse.yy.c
-       src/xbt/graphxml_parse.c
-)
+  src/xbt/datadesc/ddt_parse.yy.c
+  src/xbt/graphxml_parse.c
+  src/xbt/mmalloc/mm.c
+  )
 
 #####################################################
 ### END OF CONFIGURATION, NO NEED TO READ FURTHER ###
 #####################################################
 
 ### Rebuild the supernovae source files
+if (enable_supernovae) # I need supernovae
 
-set_source_files_properties(${PROJECT_DIRECTORY}/src/supernovae_sg.c;${PROJECT_DIRECTORY}/src/supernovae_gras.c;${PROJECT_DIRECTORY}/src/supernovae_smpi.c
-                             PROPERTIES GENERATED true)
+  # supernovae files are generated. I promise
+  set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c
+    PROPERTIES GENERATED true)
+  set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c
+    PROPERTIES GENERATED true)
+  set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c
+    PROPERTIES GENERATED true)
 
-exec_program("${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/supernovae_sg.c
-                                            ${PROJECT_DIRECTORY}/src/supernovae_gras.c 
-                                           ${PROJECT_DIRECTORY}/src/supernovae_smpi.c"
-       OUTPUT_VARIABLE "SUPER_OK")
+  ADD_CUSTOM_COMMAND(
+    OUTPUT   ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c
+    DEPENDS  ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl ${simgrid_sources}
+    COMMAND  perl ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl --out=${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c '--fragile=${simgrid_fragile_sources}' '${simgrid_sources}'
+    WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}
+    COMMENT "Generating supernovae_sg.c"
+    )
 
-exec_program("chmod +x ${PROJECT_DIRECTORY}/src/mk_supernovae.pl" OUTPUT_VARIABLE "SUPER_OK")
+  ADD_CUSTOM_COMMAND(
+    OUTPUT   ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c
+    DEPENDS  ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl ${gras_sources}
+    COMMAND  perl ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl --out=${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c '--fragile=${gras_fragile_sources}'    '${gras_sources}'
+    WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}
+    COMMENT "Generating supernovae_gras.c"
+    )
 
-ADD_CUSTOM_COMMAND(
-       OUTPUT   ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c
-       DEPENDS  ${PROJECT_DIRECTORY}/src/mk_supernovae.pl
-       COMMAND  perl ${PROJECT_DIRECTORY}/src/mk_supernovae.pl --out=${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c '--fragile=${simgrid_fragile_sources}' '${simgrid_sources}'
-       WORKING_DIRECTORY ${PROJECT_DIRECTORY}
-       COMMENT "Generating supernovae_sg.c"
-)
+  ADD_CUSTOM_COMMAND(
+    OUTPUT   ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c
+    DEPENDS  ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl ${SMPI_SRC}
+    COMMAND  perl ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl --out=${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c  '${SMPI_SRC}'
+    WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}
+    COMMENT "Generating supernovae_smpi.c"
+    )
 
-ADD_CUSTOM_COMMAND(
-       OUTPUT   ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c
-       DEPENDS  ${PROJECT_DIRECTORY}/src/mk_supernovae.pl
-       COMMAND  perl ${PROJECT_DIRECTORY}/src/mk_supernovae.pl --out=${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c '--fragile=${gras_fragile_sources}'    '${gras_sources}'
-       WORKING_DIRECTORY ${PROJECT_DIRECTORY}
-       COMMENT "Generating supernovae_gras.c"
-)
+  ### Change the content of the libraries so that it contains only supernovae+fragiles
+  set(simgrid_sources
+    ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c
+    ${simgrid_fragile_sources})
 
-ADD_CUSTOM_COMMAND(
-       OUTPUT   ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c
-       DEPENDS  ${PROJECT_DIRECTORY}/src/mk_supernovae.pl
-       COMMAND  perl ${PROJECT_DIRECTORY}/src/mk_supernovae.pl --out=${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c  '${SMPI_SRC}'
-       WORKING_DIRECTORY ${PROJECT_DIRECTORY}
-       COMMENT "Generating supernovae_smpi.c"
-)
+  set(gras_sources
+    ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c
+    ${gras_fragile_sources})
 
-### Make sure that the libs are built from the supernovae sources
-       add_library(simgrid     SHARED  ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c ${simgrid_fragile_sources})
-       add_dependencies(simgrid ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c)
-       
-       if(enable_lib_static)
-               add_library(simgrid_static STATIC ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c ${simgrid_fragile_sources})
-               add_dependencies(simgrid_static ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c)
-       endif(enable_lib_static)
-       
-       add_library(gras        SHARED  ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c ${gras_fragile_sources})
-       add_dependencies(gras ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c)
+  set(SMPI_SRC
+    ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c)
 
-       if(enable_smpi)
-               add_library(smpi        SHARED  ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c)
-               add_dependencies(smpi ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c)
-                       if(enable_lib_static)
-                               add_library(smpi_static STATIC ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c)       
-                               add_dependencies(smpi_static ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c)
-                       endif(enable_lib_static)
-       endif(enable_smpi)
+endif() # I need supernovae