Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove lua from cmake files.
[simgrid.git] / buildtools / Cmake / Pipol.cmake
1 # On a Pipol system, set:
2 # PIPOL_USER
3
4 #SET(PIPOL_USER $ENV{PIPOL_USER})
5
6 # ssh/rsync mandatory 
7 IF(pipol_user)
8
9         set(CMAKE_OPTIONS "     -Wno-dev")
10         
11         if(custom_flags)
12         set(CMAKE_OPTIONS "${CMAKE_OPTIONS}     -Dcustom_flags=${custom_flags}")
13         endif(custom_flags)
14         
15         if(with_context)
16         set(CMAKE_OPTIONS "${CMAKE_OPTIONS}     -Dwith_context=${with_context}")
17         endif(with_context)
18         
19         if(enable_smpi)
20         set(CMAKE_OPTIONS "${CMAKE_OPTIONS}     -Denable_smpi=on")
21         endif(enable_smpi)      
22         
23         if(enable_compile_optimizations)
24         set(CMAKE_OPTIONS "${CMAKE_OPTIONS}     -Denable_compile_optimizations=on")
25         endif(enable_compile_optimizations)
26         
27         if(enable_compile_warnings)
28         set(CMAKE_OPTIONS "${CMAKE_OPTIONS}     -Denable_compile_warnings=on")
29         endif(enable_compile_warnings)  
30         
31         if(enable_tracing)
32         set(CMAKE_OPTIONS "${CMAKE_OPTIONS}     -Denable_tracing=on")
33         endif(enable_tracing)
34         
35         if(enable_coverage)
36         set(CMAKE_OPTIONS "${CMAKE_OPTION}      -Denable_coverage=on")
37         endif(enable_coverage)  
38         
39         if(enable_print_message)        
40         set(CMAKE_OPTIONS "${CMAKE_OPTIONS}     -Denable_print_message=on")
41         endif(enable_print_message)     
42         
43         if(enable_model-checking)
44         set(CMAKE_OPTIONS "${CMAKE_OPTIONS}     -Denable_model-checking=on")
45         endif(enable_model-checking)
46         
47     if(enable_latency_bound_tracking)
48         set(CMAKE_OPTIONS "${CMAKE_OPTIONS}     -Denable_latency_bound_tracking=on")
49         endif(enable_latency_bound_tracking)
50
51         FIND_PROGRAM(HAVE_SSH ssh)
52         FIND_PROGRAM(HAVE_RSYNC rsync)
53
54     MESSAGE(STATUS "Pipol user is ${pipol_user}")
55     IF(HAVE_SSH)
56         message(STATUS "Found ssh: ${HAVE_SSH}")
57       # get pipol systems
58       EXECUTE_PROCESS(COMMAND 
59         ssh ${pipol_user}@pipol.inria.fr pipol-sub --query=systems 
60         OUTPUT_VARIABLE PIPOL_SYSTEMS OUTPUT_STRIP_TRAILING_WHITESPACE)
61         
62     ENDIF(HAVE_SSH)
63   
64         ADD_CUSTOM_TARGET(pipol_test_list_images
65                 COMMENT "Available images for pipol tests (cmake + make + make test) : "
66                 )
67                 
68         ADD_CUSTOM_TARGET(pipol_experimental_list_images
69                 COMMENT "Available images for ctest (ctest -D Experimental) : "
70                 )
71                 
72         ADD_CUSTOM_TARGET(pipol_kvm_deploy
73                 COMMENT "Deploy all kvm images on pipol (ctest -D Experimental) : "
74                 )
75         ADD_CUSTOM_COMMAND(TARGET pipol_kvm_deploy
76                 POST_BUILD
77                 COMMENT "See results on http://cdash.inria.fr/CDash/index.php?project=Simgrid"
78                 )
79   
80     IF(HAVE_RSYNC)
81         message(STATUS "Found rsync: ${HAVE_RSYNC}")
82               MACRO(PIPOL_TARGET
83                   SYSTEM_PATTERN)
84                                   STRING(REPLACE ".dd.gz" "" SYSTEM_TARGET ${SYSTEM_PATTERN})
85                                 
86                               ADD_CUSTOM_TARGET(
87                                 ${SYSTEM_TARGET}
88                                 COMMENT "PIPOL Build : ${SYSTEM_PATTERN}"
89                                 COMMAND rsync ${pipol_user}@pipol.inria.fr:/usr/local/bin/pipol-sub .
90                                 COMMAND ./pipol-sub --pipol-user=${pipol_user} ${SYSTEM_PATTERN} 02:00 --reconnect --group --keep --verbose=1 --export=${CMAKE_HOME_DIRECTORY} --rsynco=-aC  
91                                 \"sudo chown ${pipol_user} ${CMAKE_HOME_DIRECTORY} \;
92                                 cd ${CMAKE_HOME_DIRECTORY} \;
93                                 sh ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/liste_install.sh \;
94                                 cmake -E remove CMakeCache.txt \;
95                                 cmake ${CMAKE_HOME_DIRECTORY}${CMAKE_OPTIONS} \;
96                                 make clean \;
97                                 make \;
98                                 make check \"
99                                 )
100                               ADD_CUSTOM_TARGET(
101                                 ${SYSTEM_TARGET}_experimental
102                                 COMMENT "PIPOL Build : ${SYSTEM_PATTERN}_experimental"
103                                 COMMAND rsync ${pipol_user}@pipol.inria.fr:/usr/local/bin/pipol-sub .
104                                 COMMAND ./pipol-sub --pipol-user=${pipol_user} ${SYSTEM_PATTERN} 02:00 --reconnect --group --keep --verbose=1 --export=${CMAKE_HOME_DIRECTORY} --rsynco=-aC  
105                                 \"sudo chown ${pipol_user} ${CMAKE_HOME_DIRECTORY} \;
106                                 cd ${CMAKE_HOME_DIRECTORY} \;
107                                 sh ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/liste_install.sh \;
108                                 cmake -E remove CMakeCache.txt \;
109                                 cmake ${CMAKE_HOME_DIRECTORY}${CMAKE_OPTIONS} \;
110                                 ctest -D Experimental \"
111                                 )
112                                 
113                               STRING(REGEX MATCH "kvm" make_test "${SYSTEM_TARGET}")
114                               if(make_test)
115                                 STRING(REGEX MATCH "windows" make_test "${SYSTEM_TARGET}")
116                                 if(NOT make_test)
117                                   ADD_CUSTOM_COMMAND(TARGET pipol_kvm_deploy
118                                         COMMENT "PIPOL Build : ${SYSTEM_PATTERN}"
119                                         COMMAND rsync ${pipol_user}@pipol.inria.fr:/usr/local/bin/pipol-sub .
120                                         COMMAND ./pipol-sub --pipol-user=${pipol_user} ${SYSTEM_PATTERN} 02:00 --reconnect --group --keep --verbose=1 --export=${CMAKE_HOME_DIRECTORY} --rsynco=-aC  
121                                         \"sudo chown ${pipol_user} ${CMAKE_HOME_DIRECTORY} \;
122                                         cd ${CMAKE_HOME_DIRECTORY} \;
123                                         sh ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/liste_install.sh \;
124                                         cmake -E remove CMakeCache.txt \;
125                                         cmake ${CMAKE_HOME_DIRECTORY}${CMAKE_OPTIONS} \;
126                                         ctest -D Experimental \"
127                                          )
128                                 endif(NOT make_test)
129                               endif(make_test)
130                               
131                               ADD_CUSTOM_COMMAND(TARGET ${SYSTEM_TARGET}_experimental
132                                                                  POST_BUILD
133                                                                  COMMENT "See results on http://cdash.inria.fr/CDash/index.php?project=Simgrid"
134                                                                  )
135                                                                  
136                               ADD_CUSTOM_COMMAND(TARGET pipol_test_list_images
137                                         COMMAND echo ${SYSTEM_TARGET}
138                                         )
139                                   ADD_CUSTOM_COMMAND(TARGET pipol_experimental_list_images
140                                         COMMAND echo "${SYSTEM_TARGET}_experimental"
141                                         )
142       ENDMACRO(PIPOL_TARGET)
143       
144     ENDIF(HAVE_RSYNC)
145     
146 # add a target for each pipol system
147 IF(PIPOL_SYSTEMS)
148   MESSAGE(STATUS "Adding Pipol targets")
149   FOREACH(SYSTEM ${PIPOL_SYSTEMS})
150     PIPOL_TARGET(${SYSTEM})
151   ENDFOREACH(SYSTEM ${PIPOL_SYSTEMS})
152 ENDIF(PIPOL_SYSTEMS)
153
154 ADD_CUSTOM_TARGET(pipol_kill_all_jobs
155                 COMMENT "PIPOL delete all jobs"
156                 COMMAND ./pipol-sub --pipol-user=${pipol_user} deleteallmyjobs
157                 )
158                 
159 message(STATUS "Pipol options: ${CMAKE_OPTIONS}")
160                 
161 ENDIF(pipol_user)