Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Optionally look for a Fortran compiler.
[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/datadesc/ddt_parse.yy.c
10   src/xbt/graphxml_parse.c
11   src/xbt/mmalloc/mm.c
12   ${GTNETS_USED}
13   )
14 set(gras_fragile_sources
15   src/xbt/datadesc/ddt_parse.yy.c
16   src/xbt/graphxml_parse.c
17   src/xbt/mmalloc/mm.c
18   )
19
20 #####################################################
21 ### END OF CONFIGURATION, NO NEED TO READ FURTHER ###
22 #####################################################
23
24 ### Rebuild the supernovae source files
25 if (enable_supernovae) # I need supernovae
26
27   # supernovae files are generated. I promise
28   set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c
29     PROPERTIES GENERATED true)
30   set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c
31     PROPERTIES GENERATED true)
32   set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c
33     PROPERTIES GENERATED true)
34
35   ADD_CUSTOM_COMMAND(
36     OUTPUT   ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c
37     DEPENDS  ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl ${simgrid_sources}
38     COMMAND  perl ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl --out=${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c '--fragile=${simgrid_fragile_sources}' '${simgrid_sources}'
39     WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}
40     COMMENT "Generating supernovae_sg.c"
41     )
42
43   ADD_CUSTOM_COMMAND(
44     OUTPUT   ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c
45     DEPENDS  ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl ${gras_sources}
46     COMMAND  perl ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl --out=${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c '--fragile=${gras_fragile_sources}'    '${gras_sources}'
47     WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}
48     COMMENT "Generating supernovae_gras.c"
49     )
50
51   ADD_CUSTOM_COMMAND(
52     OUTPUT   ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c
53     DEPENDS  ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl ${SMPI_SRC}
54     COMMAND  perl ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl --out=${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c  '${SMPI_SRC}'
55     WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}
56     COMMENT "Generating supernovae_smpi.c"
57     )
58
59   ### Change the content of the libraries so that it contains only supernovae+fragiles
60   set(simgrid_sources
61     ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c
62     ${simgrid_fragile_sources})
63
64   set(gras_sources
65     ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c
66     ${gras_fragile_sources})
67
68   set(SMPI_SRC
69     ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c)
70
71 endif() # I need supernovae