Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use the right directory name.
[simgrid.git] / buildtools / Cmake / Supernovae.cmake
1 ### Make supernovae files and libs
2
3 #############################################################################
4 ### Add here every files that should not be supernovaed (generated files) ###
5 #############################################################################
6 set(simgrid_fragile_sources 
7   src/simdag/sd_daxloader.c
8   src/surf/surfxml_parse.c
9   src/xbt/automaton/automaton_create.c
10   src/xbt/datadesc/ddt_parse.yy.c
11   src/xbt/graphxml_parse.c
12   src/xbt/mmalloc/mm.c
13   ${GTNETS_USED}
14 )
15 set(gras_fragile_sources
16   src/xbt/automaton/automaton_create.c
17   src/xbt/datadesc/ddt_parse.yy.c
18   src/xbt/graphxml_parse.c
19   src/xbt/mmalloc/mm.c
20 )
21
22 #####################################################
23 ### END OF CONFIGURATION, NO NEED TO READ FURTHER ###
24 #####################################################
25
26 ### Rebuild the supernovae source files
27 if (enable_supernovae) # I need supernovae
28
29         # supernovae files are generated. I promise
30         set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c
31                                       PROPERTIES GENERATED true)
32         set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c
33                                       PROPERTIES GENERATED true)
34         set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c
35                                       PROPERTIES GENERATED true)
36
37         ADD_CUSTOM_COMMAND(
38                 OUTPUT   ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c
39                 DEPENDS  ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl ${simgrid_sources}
40                 COMMAND  perl ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl --out=${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c '--fragile=${simgrid_fragile_sources}' '${simgrid_sources}'
41                 WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}
42                 COMMENT "Generating supernovae_sg.c"
43         )
44
45         ADD_CUSTOM_COMMAND(
46                 OUTPUT   ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c
47                 DEPENDS  ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl ${gras_sources}
48                 COMMAND  perl ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl --out=${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c '--fragile=${gras_fragile_sources}'    '${gras_sources}'
49                 WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}
50                 COMMENT "Generating supernovae_gras.c"
51         )
52
53         ADD_CUSTOM_COMMAND(
54                 OUTPUT   ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c
55                 DEPENDS  ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl ${SMPI_SRC}
56                 COMMAND  perl ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl --out=${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c  '${SMPI_SRC}'
57                 WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}
58                 COMMENT "Generating supernovae_smpi.c"
59         )
60
61         ### Change the content of the libraries so that it contains only supernovae+fragiles
62         set(simgrid_sources 
63                 ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c
64                 ${simgrid_fragile_sources})
65
66         set(gras_sources
67                 ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c 
68                 ${gras_fragile_sources})                
69
70         set(SMPI_SRC 
71                 ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c)
72                                 
73 endif(enable_supernovae) # I need supernovae