2 find_program(UNAME NAMES uname)
3 macro(getuname name flag)
4 exec_program("${UNAME}" ARGS "${flag}" OUTPUT_VARIABLE "${name}")
7 #****Configuration Variables****
9 set(CTEST_PROJECT_NAME "AliRoot")
10 set(ALICE_ROOT $ENV{ALICE_ROOT})
11 set(ALICE_INSTALL $ENV{ALICE_INSTALL})
14 message(FATAL_ERROR "Please set environment variable ALICE_INSTALL to the AliRoot installation directory")
15 endif(NOT ALICE_INSTALL)
17 message(FATAL_ERROR "Please set environment variable ALICE_ROOT to the AliRoot source directory")
20 #Set hostname of current machine
21 find_program(HOSTNAME_CMD NAMES hostname)
22 exec_program(${HOSTNAME_CMD} ARGS OUTPUT_VARIABLE HOSTNAME)
23 set(CTEST_SITE "${HOSTNAME}")
29 set(CTEST_BUILD_NAME "${osname}-${cpu}-prod")
32 find_program(CTEST_SVN_COMMAND NAMES svn)
33 find_program(MAKE NAMES make)
34 find_program(CTEST_MEMORYCHECK_COMMAND NAMES valgrind)
35 set(CTEST_MEMORYCHECK_COMMAND_OPTIONS "--leak-check=full --error-limit=yes --leak-resolution=low")
37 #AliRoot Repository and build settings
38 set(ALICE_REPO "https://alisoft.cern.ch/AliRoot/trunk")
39 set(MODEL "Continuous")
42 #Set Nightly build start time
43 set(CTEST_NIGHTLY_START_TIME "00:00:00 EST")
44 set(CTEST_TEST_TIMEOUT 0)
46 set(CTEST_DROP_METHOD "http")
47 set(CTEST_DROP_SITE "alirootbuildcmake.cern.ch")
48 set(CTEST_DROP_LOCATION "/~johny/submit.php?project=AliRoot")
49 set(CTEST_DROP_SITE_CDASH TRUE)
57 execute_process(COMMAND svn info ${ALICE_ROOT} OUTPUT_VARIABLE _svn_out )
58 string(REGEX REPLACE "^.*Revision: ([^\n]*).*$" "\\1" ALIROOT_SVN_REVISION ${_svn_out})
59 set(OLDREV ${ALIROOT_SVN_REVISION})
60 set(NEWREV ${ALIROOT_SVN_REVISION})
61 message("Starting build of revision ${OLDREV}")
63 set(CTEST_BINARY_DIRECTORY "${ALICE_INSTALL}")
64 set(CTEST_SOURCE_DIRECTORY "${ALICE_ROOT}")
65 set(CTEST_DASHBOARD_ROOT "$ENV{HOME}/Dashboards")
66 # set(CTEST_CHECKOUT_COMMAND "${CTEST_SVN_COMMAND} co ${ALICE_REPO} $ENV{ALICE_ROOT}")
67 set(CTEST_UPDATE_COMMAND "${CTEST_SVN_COMMAND}")
68 set(CTEST_CMAKE_COMMAND "\"${CMAKE_EXECUTABLE_NAME}\" -D Continuous")
71 set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
73 message("Continuous Build Starting")
75 #****Testing Process****
76 while (${CTEST_ELAPSED_TIME} LESS 36000)
78 set (START_TIME ${CTEST_ELAPSED_TIME})
79 ctest_start (Continuous)
81 #Build only if new revision of source is available
82 while(${OLDREV} EQUAL ${NEWREV} AND ${CYCLE} GREATER 0)
83 message("Updating source")
84 message("Current revision : ${OLDREV}")
85 ctest_update(BUILD "${CTEST_SOURCE_DIRECTORY}")
86 execute_process(COMMAND svn info ${ALICE_ROOT} OUTPUT_VARIABLE _svn_out)
87 string(REGEX REPLACE "^.*Revision: ([^\n]*).*$" "\\1" ALIROOT_SVN_REVISION ${_svn_out})
88 set(NEWREV ${ALIROOT_SVN_REVISION})
89 message("New revision : ${NEWREV}")
90 if(${OLDREV} EQUAL ${NEWREV})
91 message("Source not updated, no need to build source")
93 endif(${OLDREV} EQUAL ${NEWREV})
95 ctest_submit (PARTS Update)
97 math(EXPR CYCLE "${CYCLE} + 1")
98 message("Build #${CYCLE} ")
99 message("Revision : ${OLDREV}")
100 set (START_TIME ${CTEST_ELAPSED_TIME})
101 math(EXPR CLEAR "${CYCLE}%${CLEARCYCLE}")
103 #Clear build directory every CLEARCYCLE build
105 message("Clearing build directory")
106 ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
107 endif(${CLEAR} EQUAL 0)
108 message(STATUS "Building source")
109 ctest_build(BUILD "${CTEST_BINARY_DIRECTORY}")
110 ctest_submit(PARTS Build)
111 #Test every other build
112 math(EXPR TEST "${CYCLE}%${TESTCYCLE}")
114 message(STATUS "Running tests")
115 ctest_test (BUILD "${CTEST_BINARY_DIRECTORY}")
116 endif(${TEST} EQUAL 0)
118 message("Build ${CYCLE} completed")