Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Also add release name in ChangeLog.
[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(with_context)
14
15   if(enable_smpi)
16     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_smpi=on")
17   endif(enable_smpi)
18
19   if(enable_lua)
20     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_lua=on")
21   endif(enable_lua)
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)