diff options
author | Alexander Neundorf <neundorf@kde.org> | 2008-11-09 20:36:33 +0000 |
---|---|---|
committer | Alexander Neundorf <neundorf@kde.org> | 2008-11-09 20:36:33 +0000 |
commit | d678f724c1a1371cd7f9db1ad516e968e0342b10 (patch) | |
tree | a26db242023a5b7baa18ee3733b74178a0e359c6 /modules | |
parent | 2ff39e5b0dff557ad514a2b8f1e062a6795d6108 (diff) | |
download | extra-cmake-modules-d678f724c1a1371cd7f9db1ad516e968e0342b10.tar.gz extra-cmake-modules-d678f724c1a1371cd7f9db1ad516e968e0342b10.tar.bz2 |
-add ctest script files to make running nightly builds easier
Alex
svn path=/trunk/KDE/kdelibs/; revision=882117
Diffstat (limited to 'modules')
-rw-r--r-- | modules/KDE4CTestNightlySetup.cmake | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/modules/KDE4CTestNightlySetup.cmake b/modules/KDE4CTestNightlySetup.cmake new file mode 100644 index 00000000..4c21a583 --- /dev/null +++ b/modules/KDE4CTestNightlySetup.cmake @@ -0,0 +1,102 @@ +# The following variables have to be set before including this file: +# CTEST_CMAKE_GENERATOR +# CTEST_UPDATE_TYPE (if update from cvs or svn is required) +# SVN_REPOSITORY or CVS_REPOSITORY and CVS_MODULE +# +# If the project doesn't build with spaces in the path, do the following: +# set(CTEST_AVOID_SPACES TRUE) +# +# After this file has been included, the regular new style ctest +# scripting commands can be used, e.g. +# +# ctest_empty_binary_directory("${CTEST_BINARY_DIRECTORY}") +# ctest_start(Nightly) +# ctest_update(SOURCE "${CTEST_SOURCE_DIRECTORY}" ) +# ctest_configure(BUILD "${CTEST_BINARY_DIRECTORY}" ) +# ctest_build(BUILD "${CTEST_BINARY_DIRECTORY}" ) +# ctest_test(BUILD "${CTEST_BINARY_DIRECTORY}" ) +# ctest_submit() + + + + +set(currentDirectory "${CTEST_SCRIPT_DIRECTORY}") + +if(NOT EXISTS "${currentDirectory}/CMakeLists.txt") + message(FATAL_ERROR "This macro must be called from a cmake script in the source tree of your project.") +endif(NOT EXISTS "${currentDirectory}/CMakeLists.txt") + +include("${currentDirectory}/CTestConfig.cmake") +include("${currentDirectory}/CTestCustom.cmake" OPTIONAL) + +# Set up the directories where the dashboards will be created +# By default this will be "$HOME/Dashboards/<project>/(src|build) dir". +# It can be overriden by the user. +set(DASHBOARD_DIR "$ENV{HOME}/Dashboards" ) + +if(NOT DEFINED CTEST_SOURCE_DIRECTORY) + if(CTEST_AVOID_SPACES) + set(CTEST_SOURCE_DIRECTORY "${DASHBOARD_DIR}/${CTEST_PROJECT_NAME}/srcdir" ) + else(CTEST_AVOID_SPACES) + set(CTEST_SOURCE_DIRECTORY "${DASHBOARD_DIR}/${CTEST_PROJECT_NAME}/src dir" ) + endif(CTEST_AVOID_SPACES) +endif(NOT DEFINED CTEST_SOURCE_DIRECTORY) + +if(NOT DEFINED CTEST_BINARY_DIRECTORY) + if(CTEST_AVOID_SPACES) + set(CTEST_BINARY_DIRECTORY "${DASHBOARD_DIR}/${CTEST_PROJECT_NAME}/builddir" ) + else(CTEST_AVOID_SPACES) + set(CTEST_BINARY_DIRECTORY "${DASHBOARD_DIR}/${CTEST_PROJECT_NAME}/build dir" ) + endif(CTEST_AVOID_SPACES) +endif(NOT DEFINED CTEST_BINARY_DIRECTORY) + + + +site_name(CTEST_SITE) +if(NOT DEFINED CTEST_BUILD_NAME) + set(CTEST_BUILD_NAME ${CMAKE_SYSTEM_NAME}) +endif(NOT DEFINED CTEST_BUILD_NAME) + +if("${CTEST_CMAKE_GENERATOR}" MATCHES Makefile) + find_program(MAKE_EXECUTABLE make gmake) + set(CTEST_BUILD_COMMAND "${MAKE_EXECUTABLE}" ) +else("${CTEST_CMAKE_GENERATOR}" MATCHES Makefile) + if(NOT DEFINED CTEST_BUILD_COMMAND) + message(FATAL_ERROR "CTEST_CMAKE_GENERATOR is set to \"${CTEST_CMAKE_GENERATOR}\", but CTEST_BUILD_COMMAND has not been set") + endif(NOT DEFINED CTEST_BUILD_COMMAND) +endif("${CTEST_CMAKE_GENERATOR}" MATCHES Makefile) + +# set up version control + +string(TOLOWER ${CTEST_UPDATE_TYPE} _ctest_vcs) +set(_have_vcs FALSE) + +if ("${_ctest_vcs}" STREQUAL svn) + find_program(SVN_EXECUTABLE svn) + if (NOT SVN_EXECUTABLE) + message(FATAL_ERROR "Error: CTEST_UPDATE_TYPE is svn, but could not find svn executable") + endif (NOT SVN_EXECUTABLE) + if(NOT SVN_REPOSITORY) + message(FATAL_ERROR "Error: CTEST_UPDATE_TYPE is svn, but SVN_REPOSITORY is not set") + endif(NOT SVN_REPOSITORY) + set(CTEST_UPDATE_COMMAND ${SVN_EXECUTABLE}) + set(CTEST_CHECKOUT_COMMAND "${SVN_EXECUTABLE} co ${SVN_REPOSITORY} \"${CTEST_SOURCE_DIRECTORY}\"") + set(_have_vcs TRUE) +endif ("${_ctest_vcs}" STREQUAL svn) + +if ("${_ctest_vcs}" STREQUAL cvs) + find_program(CVS_EXECUTABLE cvs cvsnt) + if (NOT CVS_EXECUTABLE) + message(FATAL_ERROR "Error: CTEST_UPDATE_TYPE is cvs, but could not find cvs or cvsnt executable") + endif (NOT CVS_EXECUTABLE) + if (NOT CVS_REPOSITORY) + message(FATAL_ERROR "Error: CTEST_UPDATE_TYPE is cvs, but CVS_REPOSITORY is not set") + endif (NOT CVS_REPOSITORY) + if (NOT CVS_MODULE) + message(FATAL_ERROR "Error: CTEST_UPDATE_TYPE is cvs, but CVS_MODULE is not set") + endif (NOT CVS_MODULE) + + set(CTEST_UPDATE_COMMAND ${CVS_EXECUTABLE}) + set(CTEST_CHECKOUT_COMMAND "${CVS_EXECUTABLE} -d ${CVS_REPOSITORY} co -d \"${CTEST_SOURCE_DIRECTORY}\" ${CVS_MODULE}") + set(_have_vcs TRUE) +endif ("${_ctest_vcs}" STREQUAL cvs) |