Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add a function xbt_os_get_numcores()
[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/gras/DataDesc/ddt_parse.yy.c
8         src/surf/surfxml_parse.c
9         src/xbt/graphxml_parse.c
10         src/simdag/sd_daxloader.c
11         src/xbt/mmalloc/mm.c
12         ${GTNETS_USED}
13 )
14 set(gras_fragile_sources
15         src/gras/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(enable_supernovae) # I need supernovae