Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
model-checker : update tesh
[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(with_context)
12     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Dwith_context=${with_context}")
13   endif()
14
15   if(enable_smpi)
16     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_smpi=on")
17   endif()
18
19   if(enable_lua)
20     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_lua=on")
21   endif()
22
23   if(enable_compile_optimizations)
24     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_compile_optimizations=on")
25   endif()
26
27   if(enable_compile_warnings)
28     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_compile_warnings=on")
29   endif()
30
31   if(enable_tracing)
32     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_tracing=on")
33   endif()
34
35   if(enable_coverage)
36     set(CMAKE_OPTIONS "${CMAKE_OPTION}  -Denable_coverage=on")
37   endif()
38
39   if(enable_print_message)
40     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_print_message=on")
41   endif()
42
43   if(enable_model-checking)
44     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_model-checking=on")
45   endif()
46
47   if(enable_latency_bound_tracking)
48     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_latency_bound_tracking=on")
49   endif()
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()
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()
129       endif()
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()
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()
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   add_custom_target(sync-pipol
162   COMMENT "Update pipol script for user: ${pipol_user}"
163   COMMAND scp ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/rc.* ${pipol_user}@pipol.inria.fr:~/.pipol/
164   COMMAND scp ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/Nightly_simgrid.sh ${pipol_user}@pipol.inria.fr:~/.pipol/nightly/
165   COMMAND scp ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/Nightly_memCheck.sh ${pipol_user}@pipol.inria.fr:~/.pipol/nightly/
166   COMMAND scp ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/Experimental_bindings.sh ${pipol_user}@pipol.inria.fr:~/
167   COMMAND scp ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/pre-simgrid.sh ${pipol_user}@pipol.inria.fr:~/
168   COMMAND ssh ${pipol_user}@pipol.inria.fr "chmod a=rwx ~/* ~/.pipol/rc.* ~/.pipol/nightly/*"
169   )
170 ENDIF()