Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix the Java compilation and linking
[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     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_smpi_MPICH3_testsuite=on")
18   endif()
19
20   if(enable_lua)
21     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_lua=on")
22   endif()
23
24   if(enable_compile_optimizations)
25     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_compile_optimizations=on")
26   endif()
27
28   if(enable_compile_warnings)
29     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_compile_warnings=on")
30   endif()
31
32   if(enable_tracing)
33     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_tracing=on")
34   endif()
35
36   if(enable_coverage)
37     set(CMAKE_OPTIONS "${CMAKE_OPTION}  -Denable_coverage=on")
38   endif()
39
40   if(enable_print_message)
41     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_print_message=on")
42   endif()
43
44   if(enable_model-checking)
45     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_model-checking=on")
46   endif()
47
48   if(enable_latency_bound_tracking)
49     set(CMAKE_OPTIONS "${CMAKE_OPTIONS} -Denable_latency_bound_tracking=on")
50   endif()
51
52   FIND_PROGRAM(HAVE_SSH ssh)
53   FIND_PROGRAM(HAVE_RSYNC rsync)
54
55   MESSAGE(STATUS "Pipol user is '${pipol_user}'")
56   IF(HAVE_SSH)
57     message(STATUS "Found ssh: ${HAVE_SSH}")
58     # get pipol systems
59     EXECUTE_PROCESS(COMMAND
60       ssh ${pipol_user}@pipol.inria.fr pipol-sub --query=systems
61       OUTPUT_VARIABLE PIPOL_SYSTEMS OUTPUT_STRIP_TRAILING_WHITESPACE)
62
63   ENDIF()
64
65   ADD_CUSTOM_TARGET(pipol_test_list_images
66     COMMENT "Available images for pipol tests (cmake + make + make test) : "
67     )
68
69   ADD_CUSTOM_TARGET(pipol_experimental_list_images
70     COMMENT "Available images for ctest (ctest -D Experimental) : "
71     )
72
73   ADD_CUSTOM_TARGET(pipol_kvm_deploy
74     COMMENT "Deploy all kvm images on pipol (ctest -D Experimental) : "
75     )
76   ADD_CUSTOM_COMMAND(TARGET pipol_kvm_deploy
77     POST_BUILD
78     COMMENT "See results on http://cdash.inria.fr/CDash/index.php?project=Simgrid"
79     )
80
81   IF(HAVE_RSYNC)
82     message(STATUS "Found rsync: ${HAVE_RSYNC}")
83     MACRO(PIPOL_TARGET
84         SYSTEM_PATTERN)
85       STRING(REPLACE ".dd.gz" "" SYSTEM_TARGET ${SYSTEM_PATTERN})
86
87       ADD_CUSTOM_TARGET(
88         ${SYSTEM_TARGET}
89         COMMENT "PIPOL Build : ${SYSTEM_PATTERN}"
90         COMMAND rsync ${pipol_user}@pipol.inria.fr:/usr/local/bin/pipol-sub .
91         COMMAND ./pipol-sub --pipol-user=${pipol_user} ${SYSTEM_PATTERN} 02:00 --reconnect --group --keep --verbose=1 --export=${CMAKE_HOME_DIRECTORY} --rsynco=-aC
92         \"sudo chown ${pipol_user} ${CMAKE_HOME_DIRECTORY} \;
93         cd ${CMAKE_HOME_DIRECTORY} \;
94         sh ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/liste_install.sh \;
95         cmake -E remove CMakeCache.txt \;
96         cmake ${CMAKE_HOME_DIRECTORY}${CMAKE_OPTIONS} \;
97         make clean \;
98         make \;
99         make check \"
100         )
101       ADD_CUSTOM_TARGET(
102         ${SYSTEM_TARGET}_experimental
103         COMMENT "PIPOL Build : ${SYSTEM_PATTERN}_experimental"
104         COMMAND rsync ${pipol_user}@pipol.inria.fr:/usr/local/bin/pipol-sub .
105         COMMAND ./pipol-sub --pipol-user=${pipol_user} ${SYSTEM_PATTERN} 02:00 --reconnect --group --keep --verbose=1 --export=${CMAKE_HOME_DIRECTORY} --rsynco=-aC
106         \"sudo chown ${pipol_user} ${CMAKE_HOME_DIRECTORY} \;
107         cd ${CMAKE_HOME_DIRECTORY} \;
108         sh ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/liste_install.sh \;
109         cmake -E remove CMakeCache.txt \;
110         cmake ${CMAKE_HOME_DIRECTORY}${CMAKE_OPTIONS} \;
111         ctest -D Experimental \"
112         )
113
114       STRING(REGEX MATCH "kvm" make_test "${SYSTEM_TARGET}")
115       if(make_test)
116         STRING(REGEX MATCH "windows" make_test "${SYSTEM_TARGET}")
117         if(NOT make_test)
118           ADD_CUSTOM_COMMAND(TARGET pipol_kvm_deploy
119             COMMENT "PIPOL Build : ${SYSTEM_PATTERN}"
120             COMMAND rsync ${pipol_user}@pipol.inria.fr:/usr/local/bin/pipol-sub .
121             COMMAND ./pipol-sub --pipol-user=${pipol_user} ${SYSTEM_PATTERN} 02:00 --reconnect --group --keep --verbose=1 --export=${CMAKE_HOME_DIRECTORY} --rsynco=-aC
122             \"sudo chown ${pipol_user} ${CMAKE_HOME_DIRECTORY} \;
123             cd ${CMAKE_HOME_DIRECTORY} \;
124             sh ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/liste_install.sh \;
125             cmake -E remove CMakeCache.txt \;
126             cmake ${CMAKE_HOME_DIRECTORY}${CMAKE_OPTIONS} \;
127             ctest -D Experimental \"
128             )
129         endif()
130       endif()
131
132       ADD_CUSTOM_COMMAND(TARGET ${SYSTEM_TARGET}_experimental
133         POST_BUILD
134         COMMENT "See results on http://cdash.inria.fr/CDash/index.php?project=Simgrid"
135         )
136
137       ADD_CUSTOM_COMMAND(TARGET pipol_test_list_images
138         COMMAND echo ${SYSTEM_TARGET}
139         )
140     ADD_CUSTOM_COMMAND(TARGET pipol_experimental_list_images
141         COMMAND echo "${SYSTEM_TARGET}_experimental"
142         )
143     ENDMACRO(PIPOL_TARGET)
144
145   ENDIF()
146
147   # add a target for each pipol system
148   IF(PIPOL_SYSTEMS)
149     #MESSAGE(STATUS "Adding Pipol targets")
150     FOREACH(SYSTEM ${PIPOL_SYSTEMS})
151       PIPOL_TARGET(${SYSTEM})
152     ENDFOREACH(SYSTEM ${PIPOL_SYSTEMS})
153   ENDIF()
154
155   ADD_CUSTOM_TARGET(pipol_kill_all_jobs
156     COMMENT "PIPOL delete all jobs"
157     COMMAND ./pipol-sub --pipol-user=${pipol_user} deleteallmyjobs
158     )
159
160   #message(STATUS "Pipol options: ${CMAKE_OPTIONS}")
161
162   add_custom_target(sync-pipol
163   COMMENT "Update pipol script for user: ${pipol_user}"
164   COMMAND scp ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/rc.* ${pipol_user}@pipol.inria.fr:~/.pipol/
165   COMMAND scp ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/Nightly_simgrid.sh ${pipol_user}@pipol.inria.fr:~/.pipol/nightly/
166   COMMAND scp ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/Nightly_memCheck.sh ${pipol_user}@pipol.inria.fr:~/.pipol/nightly/
167   COMMAND scp ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/Experimental_bindings.sh ${pipol_user}@pipol.inria.fr:~/
168   COMMAND scp ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/pre-simgrid.sh ${pipol_user}@pipol.inria.fr:~/
169   COMMAND ssh ${pipol_user}@pipol.inria.fr "chmod a=rwx ~/* ~/.pipol/rc.* ~/.pipol/nightly/*"
170   )
171 ENDIF()