Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Set gtnets sources as fragile sources for simgrid cause they are *.cc
[simgrid.git] / buildtools / Cmake / Supernovae.cmake
index a798e33..4e7c2f9 100644 (file)
@@ -8,6 +8,7 @@ set(simgrid_fragile_sources
        src/surf/surfxml_parse.c
        src/xbt/graphxml_parse.c
        src/simdag/sd_daxloader.c
+       ${GTNETS_USED}
 )
 set(gras_fragile_sources
        src/gras/DataDesc/ddt_parse.yy.c
@@ -19,58 +20,50 @@ set(gras_fragile_sources
 #####################################################
 
 ### 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_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"
-)
+       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_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"
-)
+       ### 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})
 
-### 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(gras_sources
+               ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c 
+               ${gras_fragile_sources})                
 
-       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)
+       set(SMPI_SRC 
+               ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c)
+                               
+endif(enable_supernovae) # I need supernovae