Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
c715618440ed3f3dbf1fac038af6a22706f8af6c
[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         FIND_PROGRAM(HAVE_SSH ssh)
10         FIND_PROGRAM(HAVE_RSYNC rsync)
11
12     MESSAGE(STATUS "Pipol user is ${pipol_user}")
13     IF(HAVE_SSH)
14       # get pipol systems
15       EXECUTE_PROCESS(COMMAND 
16         ssh ${pipol_user}@pipol.inria.fr pipol-sub --query=systems 
17         OUTPUT_VARIABLE PIPOL_SYSTEMS OUTPUT_STRIP_TRAILING_WHITESPACE)
18     ENDIF(HAVE_SSH)
19   
20         ADD_CUSTOM_TARGET(pipol_test_list_images
21                 COMMENT "Available images for pipol tests (cmake + make + make test) : "
22                 )
23                 
24         ADD_CUSTOM_TARGET(pipol_experimental_list_images
25                 COMMENT "Available images for ctest (ctest -D Experimental) : "
26                 )
27                 
28         ADD_CUSTOM_TARGET(pipol_kvm_deploy
29                 COMMENT "Deploy all kvm images on pipol (ctest -D Experimental) : "
30                 )
31         ADD_CUSTOM_COMMAND(TARGET pipol_kvm_deploy
32                 POST_BUILD
33                 COMMENT "See results on http://cdash.inria.fr/CDash/index.php?project=Simgrid"
34                 )
35   
36     IF(HAVE_RSYNC)
37               
38               MACRO(PIPOL_TARGET
39                   SYSTEM_PATTERN)
40                                   STRING(REPLACE ".dd.gz" "" SYSTEM_TARGET ${SYSTEM_PATTERN})
41                                 
42                               ADD_CUSTOM_TARGET(
43                                 ${SYSTEM_TARGET}
44                                 COMMENT "PIPOL Build : ${SYSTEM_PATTERN}"
45                                 COMMAND rsync ${pipol_user}@pipol.inria.fr:/usr/local/bin/pipol-sub .
46                                 COMMAND ./pipol-sub --pipol-user=${pipol_user} ${SYSTEM_PATTERN} 02:00 --reconnect --group --keep --verbose=1 --export=${CMAKE_HOME_DIRECTORY} --rsynco=-aC  
47                                 \"sudo chown ${pipol_user} ${CMAKE_HOME_DIRECTORY} \;
48                                 cd ${CMAKE_HOME_DIRECTORY} \;
49                                 sh ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/liste_install.sh \;
50                                 cmake ${CMAKE_HOME_DIRECTORY} \;
51                                 make clean \;
52                                 make \;
53                                 make check \"
54                                 )
55                               ADD_CUSTOM_TARGET(
56                                 ${SYSTEM_TARGET}_experimental
57                                 COMMENT "PIPOL Build : ${SYSTEM_PATTERN}_experimental"
58                                 COMMAND rsync ${pipol_user}@pipol.inria.fr:/usr/local/bin/pipol-sub .
59                                 COMMAND ./pipol-sub --pipol-user=${pipol_user} ${SYSTEM_PATTERN} 02:00 --reconnect --group --keep --verbose=1 --export=${CMAKE_HOME_DIRECTORY} --rsynco=-aC  
60                                 \"sudo chown ${pipol_user} ${CMAKE_HOME_DIRECTORY} \;
61                                 cd ${CMAKE_HOME_DIRECTORY} \;
62                                 sh ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/liste_install.sh \;
63                                 cmake ${CMAKE_HOME_DIRECTORY} \;
64                                 ctest -D Experimental \"
65                                 )
66                                 
67                               STRING(REGEX MATCH "kvm" make_test "${SYSTEM_TARGET}")
68                               if(make_test)
69                                 STRING(REGEX MATCH "windows" make_test "${SYSTEM_TARGET}")
70                                 if(NOT make_test)
71                                   ADD_CUSTOM_COMMAND(TARGET pipol_kvm_deploy
72                                         COMMENT "PIPOL Build : ${SYSTEM_PATTERN}"
73                                         COMMAND rsync ${pipol_user}@pipol.inria.fr:/usr/local/bin/pipol-sub .
74                                         COMMAND ./pipol-sub --pipol-user=${pipol_user} ${SYSTEM_PATTERN} 02:00 --reconnect --group --keep --verbose=1 --export=${CMAKE_HOME_DIRECTORY} --rsynco=-aC  
75                                         \"sudo chown ${pipol_user} ${CMAKE_HOME_DIRECTORY} \;
76                                         cd ${CMAKE_HOME_DIRECTORY} \;
77                                         sh ${CMAKE_HOME_DIRECTORY}/buildtools/pipol/liste_install.sh \;
78                                         cmake ${CMAKE_HOME_DIRECTORY} \;
79                                         ctest -D Experimental \"
80                                          )
81                                 endif(NOT make_test)
82                               endif(make_test)
83                               
84                               ADD_CUSTOM_COMMAND(TARGET ${SYSTEM_TARGET}_experimental
85                                                                  POST_BUILD
86                                                                  COMMENT "See results on http://cdash.inria.fr/CDash/index.php?project=Simgrid"
87                                                                  )
88                                                                  
89                               ADD_CUSTOM_COMMAND(TARGET pipol_test_list_images
90                                         COMMAND echo ${SYSTEM_TARGET}
91                                         )
92                                   ADD_CUSTOM_COMMAND(TARGET pipol_experimental_list_images
93                                         COMMAND echo "${SYSTEM_TARGET}_experimental"
94                                         )
95       ENDMACRO(PIPOL_TARGET)
96       
97     ENDIF(HAVE_RSYNC)
98     
99 # add a target for each pipol system
100 IF(PIPOL_SYSTEMS)
101   MESSAGE(STATUS "Adding Pipol targets")
102   FOREACH(SYSTEM ${PIPOL_SYSTEMS})
103     PIPOL_TARGET(${SYSTEM})
104   ENDFOREACH(SYSTEM ${PIPOL_SYSTEMS})
105 ENDIF(PIPOL_SYSTEMS)
106
107 ENDIF(pipol_user)