Browse Source

Update dashboard driver script to submit a regular project layout.

As discussed during the CTK hackfest, instead of submitting submitting
each CTK libraries, plugins, applications as a separate CDash subproject.
This commit reverts to a "regular" CDash layout where the
configure/build/test results are all presented on a single page. This will
be easier to maintain and less confusing for the developer.

Finally, the driver script is now downloaded directly from Github. This is
now possible by using CMake version >= 2.8.9 having built-in support
for https download. See [1]

Fixes #457

[1] http://cmake.org/gitweb?p=cmake.git;a=commit;h=4bcd84e65ad2f792c549989b9d773191ad75e5eb
Jean-Christophe Fillion-Robin 11 years ago
parent
commit
f73c51766f
2 changed files with 184 additions and 192 deletions
  1. 73 131
      CMake/ctkDashboardDriverScript.cmake
  2. 111 61
      CMake/ctkDashboardScript.TEMPLATE.cmake

+ 73 - 131
CMake/ctkDashboardDriverScript.cmake

@@ -27,10 +27,15 @@
 # \note Any change to the file should also be backported on http://commontk.org/
 #
 
+# XXX This allows to support older scripts having the typo
+if(DEFINED ADDITIONNAL_CMAKECACHE_OPTION)
+  set(ADDITIONAL_CMAKECACHE_OPTION ${ADDITIONNAL_CMAKECACHE_OPTION})
+endif()
+
 #-----------------------------------------------------------------------------
 # The following variable are expected to be define in the top-level script:
 set(expected_variables
-  ADDITIONNAL_CMAKECACHE_OPTION
+  ADDITIONAL_CMAKECACHE_OPTION
   CTEST_NOTES_FILES
   CTEST_SITE
   CTEST_DASHBOARD_ROOT
@@ -63,27 +68,38 @@ foreach(var ${expected_variables})
 endforeach()
 
 # If the dashscript doesn't define a GIT_REPOSITORY variable, let's define it here.
-if (NOT DEFINED GIT_REPOSITORY OR GIT_REPOSITORY STREQUAL "")
+if(NOT DEFINED GIT_REPOSITORY OR GIT_REPOSITORY STREQUAL "")
   set(GIT_REPOSITORY http://github.com/commontk/CTK.git)
 endif()
 
+set(repository ${GIT_REPOSITORY})
+set(git_branch_option "")
+if(NOT "${GIT_TAG}" STREQUAL "")
+  set(git_branch_option "-b ${GIT_TAG}")
+endif()
+message("GIT_REPOSITORY ......: ${GIT_REPOSITORY}")
+message("GIT_TAG .............: ${GIT_TAG}")
+
 # Should binary directory be cleaned?
 set(empty_binary_directory FALSE)
 
 # Attempt to build and test also if 'ctest_update' returned an error
 set(force_build FALSE)
 
+# Ensure SCRIPT_MODE is lowercase
+string(TOLOWER ${SCRIPT_MODE} SCRIPT_MODE)
+
 # Set model options
 set(model "")
-if (SCRIPT_MODE STREQUAL "experimental")
+if(SCRIPT_MODE STREQUAL "experimental")
   set(empty_binary_directory FALSE)
   set(force_build TRUE)
   set(model Experimental)
-elseif (SCRIPT_MODE STREQUAL "continuous")
+elseif(SCRIPT_MODE STREQUAL "continuous")
   set(empty_binary_directory TRUE)
   set(force_build FALSE)
   set(model Continuous)
-elseif (SCRIPT_MODE STREQUAL "nightly")
+elseif(SCRIPT_MODE STREQUAL "nightly")
   set(empty_binary_directory TRUE)
   set(force_build TRUE)
   set(model Nightly)
@@ -91,11 +107,6 @@ else()
   message(FATAL_ERROR "Unknown script mode: '${SCRIPT_MODE}'. Script mode should be either 'experimental', 'continuous' or 'nightly'")
 endif()
 
-#message("script_mode:${SCRIPT_MODE}")
-#message("model:${model}")
-#message("empty_binary_directory:${empty_binary_directory}")
-#message("force_build:${force_build}")
-
 # For more details, see http://www.kitware.com/blog/home/post/11
 set(CTEST_USE_LAUNCHERS 1)
 if(NOT "${CTEST_CMAKE_GENERATOR}" MATCHES "Make")
@@ -109,7 +120,7 @@ if(empty_binary_directory)
 endif()
 
 if(NOT EXISTS "${CTEST_SOURCE_DIRECTORY}")
-  set(CTEST_CHECKOUT_COMMAND "${CTEST_GIT_COMMAND} clone ${GIT_REPOSITORY} ${CTEST_SOURCE_DIRECTORY}")
+  set(CTEST_CHECKOUT_COMMAND "${CTEST_GIT_COMMAND} clone ${git_branch_option} ${GIT_REPOSITORY} ${CTEST_SOURCE_DIRECTORY}")
 endif()
 
 set(CTEST_UPDATE_COMMAND "${CTEST_GIT_COMMAND}")
@@ -118,7 +129,10 @@ set(CTEST_UPDATE_COMMAND "${CTEST_GIT_COMMAND}")
 # run_ctest macro
 #
 macro(run_ctest)
+  message("----------- [ Start ${CTEST_PROJECT_NAME} ] -----------")
   ctest_start(${model})
+
+  message("----------- [ Update ${CTEST_PROJECT_NAME} ] -----------")
   ctest_update(SOURCE "${CTEST_SOURCE_DIRECTORY}" RETURN_VALUE res)
 
   # force a build if this is the first run and the build dir is empty
@@ -130,145 +144,73 @@ macro(run_ctest)
     file(WRITE "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" "
 QT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
 WITH_COVERAGE:BOOL=${WITH_COVERAGE}
-#DOCUMENTATION_TARGET_IN_ALL:BOOL=${WITH_DOCUMENTATION}
+DOCUMENTATION_TARGET_IN_ALL:BOOL=${WITH_DOCUMENTATION}
 DOCUMENTATION_ARCHIVES_OUTPUT_DIRECTORY:PATH=${DOCUMENTATION_ARCHIVES_OUTPUT_DIRECTORY}
-${ADDITIONNAL_CMAKECACHE_OPTION}
+${ADDITIONAL_CMAKECACHE_OPTION}
 ")
   endif()
   
-  if (res GREATER 0 OR force_build)
+  if(res GREATER 0 OR force_build)
   
+    #-----------------------------------------------------------------------------
+    # Update
+    #-----------------------------------------------------------------------------
     ctest_submit(PARTS Update)
-      
-    message("Configure SuperBuild")
-    
-    set_property(GLOBAL PROPERTY SubProject SuperBuild)
-    set_property(GLOBAL PROPERTY Label SuperBuild)
-     
+
+    #-----------------------------------------------------------------------------
+    # Configure
+    #-----------------------------------------------------------------------------
+    message("----------- [ Configure ${CTEST_PROJECT_NAME} ] -----------")
+
     ctest_configure(BUILD "${CTEST_BINARY_DIRECTORY}")
     ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}")
     ctest_submit(PARTS Configure)
-    ctest_submit(FILES "${CTEST_BINARY_DIRECTORY}/Project.xml")
-
+      
+    #-----------------------------------------------------------------------------
     # Build top level
-    message("----------- [ Build SuperBuild ] -----------")
-    ctest_build(BUILD "${CTEST_BINARY_DIRECTORY}" TARGET "CTK-configure" APPEND)
+    #-----------------------------------------------------------------------------
+    set(build_errors)
+    message("----------- [ Build ${CTEST_PROJECT_NAME} ] -----------")
+    ctest_build(BUILD "${CTEST_BINARY_DIRECTORY}" NUMBER_ERRORS build_errors APPEND)
     ctest_submit(PARTS Build)
-    
+
+    #-----------------------------------------------------------------------------
+    # Inner build directory
+    #-----------------------------------------------------------------------------
+    set(ctk_build_dir "${CTEST_BINARY_DIRECTORY}/CTK-build")
+
+    #-----------------------------------------------------------------------------
+    # Test
+    #-----------------------------------------------------------------------------
+    message("----------- [ Test ${CTEST_PROJECT_NAME} ] -----------")
     ctest_test(
-      BUILD "${CTEST_BINARY_DIRECTORY}" 
-      INCLUDE_LABEL "SuperBuild"
-      PARALLEL_LEVEL 8
+      BUILD "${ctk_build_dir}"
+      PARALLEL_LEVEL ${CTEST_PARALLEL_LEVEL}
       EXCLUDE ${TEST_TO_EXCLUDE_REGEX})
-    # runs only tests that have a LABELS property matching "${subproject}"
     ctest_submit(PARTS Test)
-      
-    set(ctk_build_dir "${CTEST_BINARY_DIRECTORY}/CTK-build")
-    
-    # To get CTEST_PROJECT_SUBPROJECTS definition
-    include("${CTEST_BINARY_DIRECTORY}/CTestConfigSubProject.cmake")
-    
-    set(kit_suffixes
-      CppTests
-      #PythonTests
-      )
 
-    set(kit_widgets_suffixes
-      Plugins
-      )
-    
-   foreach(subproject ${CTEST_PROJECT_SUBPROJECTS})
-     set_property(GLOBAL PROPERTY SubProject ${subproject})
-     set_property(GLOBAL PROPERTY Label ${subproject})
-     message("Build ${subproject}")
-    
-     # Configure target
-     ctest_configure(BUILD "${CTEST_BINARY_DIRECTORY}")
-     ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}")
-     ctest_submit(PARTS Configure)
-     
-     # Build target
-     set(CTEST_BUILD_TARGET "${subproject}")
-     ctest_build(BUILD "${ctk_build_dir}" APPEND)
-     ctest_submit(PARTS Build)
-     
-     # Loop over kit suffixes and try to build the corresponding target
-     foreach(kit_suffixe ${kit_suffixes})
-       message("----------- [ Build ${subproject}${kit_suffixe} ] -----------")
-       set(CTEST_BUILD_TARGET "${subproject}${kit_suffixe}")
-       ctest_build(BUILD "${ctk_build_dir}" APPEND)
-       ctest_submit(PARTS Build)
-     endforeach()
-
-     if ("${subproject}" MATCHES "Widgets$")
-       # Loop over kit suffixes and try to build the corresponding target
-       foreach(kit_widgets_suffixe ${kit_widgets_suffixes})
-         message("----------- [ Build ${subproject}${kit_widgets_suffixe} ] -----------")
-         set(CTEST_BUILD_TARGET "${subproject}${kit_widgets_suffixe}")
-         ctest_build(BUILD "${ctk_build_dir}" APPEND)
-         ctest_submit(PARTS Build)
-       endforeach()
-     endif()
-    endforeach()
-    
-    if (WITH_DOCUMENTATION)
-      message("----------- [ Build Documentation ] -----------")
-      # Build Documentation target
-      set_property(GLOBAL PROPERTY SubProject Documentation)
-      set_property(GLOBAL PROPERTY Label Documentation)
-      set(CTEST_BUILD_TARGET "doc")
-      ctest_build(BUILD "${ctk_build_dir}" APPEND)
-      ctest_submit(PARTS Build)
-    endif()
-    
-    # HACK Unfortunately ctest_coverage ignores the build argument, try to force it...
-    file(READ ${ctk_build_dir}/CMakeFiles/TargetDirectories.txt ctk_build_coverage_dirs)
-    file(APPEND "${CTEST_BINARY_DIRECTORY}/CMakeFiles/TargetDirectories.txt" "${ctk_build_coverage_dirs}")
+    #-----------------------------------------------------------------------------
+    # Global coverage ...
+    #-----------------------------------------------------------------------------
+    if(WITH_COVERAGE AND CTEST_COVERAGE_COMMAND)
+      # HACK Unfortunately ctest_coverage ignores the build argument, try to force it...
+      file(READ ${ctk_build_dir}/CMakeFiles/TargetDirectories.txt ctk_build_coverage_dirs)
+      file(APPEND "${CTEST_BINARY_DIRECTORY}/CMakeFiles/TargetDirectories.txt" "${ctk_build_coverage_dirs}")
     
-    foreach(subproject ${CTEST_PROJECT_SUBPROJECTS})
-      set_property(GLOBAL PROPERTY SubProject ${subproject})
-      set_property(GLOBAL PROPERTY Label ${subproject})
-      message("----------- [ Test ${subproject} ] -----------")
-
-      ctest_test(
-        BUILD "${ctk_build_dir}" 
-        INCLUDE_LABEL "${subproject}"
-        PARALLEL_LEVEL 8
-        EXCLUDE ${test_to_exclude_regex})
-      # runs only tests that have a LABELS property matching "${subproject}"
-      ctest_submit(PARTS Test)
-
-      # Coverage per sub-project (library, application or plugin)
-      if (WITH_COVERAGE AND CTEST_COVERAGE_COMMAND)
-        message("----------- [ Coverage ${subproject} ] -----------")
-        ctest_coverage(BUILD "${ctk_build_dir}" LABELS "${subproject}")
-        ctest_submit(PARTS Coverage)
-      endif ()
-
-      #if (WITH_MEMCHECK AND CTEST_MEMORYCHECK_COMMAND)
-      #  ctest_memcheck(BUILD "${ctk_build_dir}" INCLUDE_LABEL "${subproject}")
-      #  ctest_submit(PARTS MemCheck)
-      #endif ()
-
-    endforeach()
-    
-    set_property(GLOBAL PROPERTY SubProject SuperBuild)
-    set_property(GLOBAL PROPERTY Label SuperBuild)
-    
-    # Global coverage ... 
-    if (WITH_COVERAGE AND CTEST_COVERAGE_COMMAND)
-      message("----------- [ Global coverage ] -----------")
+      message("----------- [ Coverage ] -----------")
       ctest_coverage(BUILD "${ctk_build_dir}")
       ctest_submit(PARTS Coverage)
-    endif ()
-    
+    endif()
+
+    #-----------------------------------------------------------------------------
     # Global dynamic analysis ...
-    if (WITH_MEMCHECK AND CTEST_MEMORYCHECK_COMMAND)
-        message("----------- [ Global memcheck ] -----------")
-        ctest_memcheck(BUILD "${ctk_build_dir}")
-        ctest_submit(PARTS MemCheck)
-      endif ()
-    
+    #-----------------------------------------------------------------------------
+    if(WITH_MEMCHECK AND CTEST_MEMORYCHECK_COMMAND)
+      message("----------- [ Memcheck ] -----------")
+      ctest_memcheck(BUILD "${ctk_build_dir}")
+      ctest_submit(PARTS MemCheck)
+    endif()
+
     # Note should be at the end
     ctest_submit(PARTS Notes)
   

+ 111 - 61
CMake/ctkDashboardScript.TEMPLATE.cmake

@@ -1,81 +1,126 @@
+####################################################################################
+# OS      :
+# Hardware:
+# GPU     :
+####################################################################################
+# WARNING - The specific version and processor type of this machine should be reported
+# in the header above. Indeed, this file will be send to the dashboard as a NOTE file.
 #
-# OS: Ubuntu 9.04 2.6.28-18-generic
-# Hardware: x86_64 GNU/Linux
-# GPU: NA
-#
-
-# Note: The specific version and processor type of this machine should be reported in the 
-# header above. Indeed, this file will be send to the dashboard as a NOTE file. 
+# On linux, you could run:
+#     'uname -o' and 'cat /etc/*-release' to obtain the OS name.
+#     'uname -mpi' to obtain hardware details.
+#     'glxinfo | grep OpenGL' to obtain GPU details.
+####################################################################################
 
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 2.8.9)
 
 #
 # For additional information, see http://www.commontk.org/index.php/Dashboard_setup
 #
 
+#-----------------------------------------------------------------------------
+# Experimental:
+#     - run_ctest() macro will be called *ONE* time
+#     - binary directory will *NOT* be cleaned
+# Continuous:
+#     - run_ctest() macro will be called EVERY 5 minutes ...
+#     - binary directory will *NOT* be cleaned
+#     - configure/build will be executed *ONLY* if the repository has been updated
+# Nightly:
+#     - run_ctest() macro will be called *ONE* time
+#     - binary directory *WILL BE* cleaned
+set(SCRIPT_MODE "Experimental") # "Experimental", "Continuous", "Nightly"
+
+# You could invoke the script with the following syntax:
+#  ctest -S karakoram_Slicer4_nightly.cmake -C <CTEST_BUILD_CONFIGURATION> -V
 #
+# Note that '-C <CTEST_BUILD_CONFIGURATION>' is mandatory on windows
+
+#-----------------------------------------------------------------------------
 # Dashboard properties
-#
-set(MY_OPERATING_SYSTEM "Linux") # Windows, Linux, Darwin... 
-set(MY_COMPILER "g++4.3.3")
-set(MY_QT_VERSION "4.6.2")
-set(QT_QMAKE_EXECUTABLE "$ENV{HOME}/Projects/qtsdk-2010.02/qt/bin/qmake")
-set(CTEST_SITE "sagarmatha.kitware") # for example: mymachine.kitware, mymachine.dkfz, ...
-set(CTEST_DASHBOARD_ROOT "$ENV{HOME}/Projects/")
+#-----------------------------------------------------------------------------
+set(MY_OPERATING_SYSTEM "Ubuntu-13.10") # Windows, Linux, Darwin...
+set(MY_COMPILER "g++4.8.1")
+set(MY_QT_VERSION "4.8.5")
+set(QT_QMAKE_EXECUTABLE "$ENV{HOME}/Support/qt-everywhere-opensource-release-build-4.8.5/bin/qmake")
+set(CTEST_SITE "karakoram.kitware") # for example: mymachine.kitware, mymachine.dkfz, ...
+set(CTEST_DASHBOARD_ROOT "$ENV{HOME}/Dashboards/${SCRIPT_MODE}")
+
+# set(GIT_REPOSITORY http://github.com/YOURUSERNAME/CTK.git)
+set(GIT_TAG "") # origin/next
+
+# Each dashboard script should specify a unique ID per CTEST_DASHBOARD_ROOT.
+# It means the following directories will be created:
+#   <CTEST_DASHBOARD_ROOT>/<DIRECTORY_NAME>-<DIRECTORY_IDENTIFIER>        # Source directory
+#   <CTEST_DASHBOARD_ROOT>/<DIRECTORY_NAME>-<DIRECTORY_IDENTIFIER>-build  # Build directory
+set(DIRECTORY_IDENTIFIER  "0")
+
+# Open a shell and type in "cmake --help" to obtain the proper spelling of the generator
 set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
+set(MY_BITNESS            "64")
 
-#
+#-----------------------------------------------------------------------------
 # Dashboard options
-#
+#-----------------------------------------------------------------------------
 set(WITH_KWSTYLE FALSE)
 set(WITH_MEMCHECK FALSE)
-set(WITH_COVERAGE TRUE)
+set(WITH_COVERAGE FALSE)
 set(WITH_DOCUMENTATION FALSE)
 #set(DOCUMENTATION_ARCHIVES_OUTPUT_DIRECTORY ) # for example: $ENV{HOME}/Projects/Doxygen
 set(CTEST_BUILD_CONFIGURATION "Release")
 set(CTEST_TEST_TIMEOUT 500)
-set(CTEST_BUILD_FLAGS "-j4") # Use multiple CPU cores to build
+set(CTEST_BUILD_FLAGS "") # Use multiple CPU cores to build. For example "-j -l4" on unix
+set(CTEST_PARALLEL_LEVEL 8) # Number of tests running in parallel
 
-# experimental: 
-#     - run_ctest() macro will be called *ONE* time
-#     - binary directory will *NOT* be cleaned
-# continuous: 
-#     - run_ctest() macro will be called EVERY 5 minutes ... 
-#     - binary directory will *NOT* be cleaned
-#     - configure/build will be executed *ONLY* if the repository has been updated
-# nightly: 
-#     - run_ctest() macro will be called *ONE* time
-#     - binary directory *WILL BE* cleaned
-set(SCRIPT_MODE "experimental") # "experimental", "continuous", "nightly"
-
-#
-# Project specific properties
-#
-set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/CTK")
-set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/CTK-Superbuild-${CTEST_BUILD_CONFIGURATION}-${SCRIPT_MODE}")
-
-# Additionnal CMakeCache options - For example:
-# CTK_LIB_Widgets:BOOL=ON
-# CTK_APP_ctkDICOM:BOOL=ON
-
-set(ADDITIONNAL_CMAKECACHE_OPTION "
-#CTK_LIB_Scripting/Python/Widgets:BOOL=ON
+#-----------------------------------------------------------------------------
+# Additional CMakeCache options
+#-----------------------------------------------------------------------------
+set(ADDITIONAL_CMAKECACHE_OPTION "
 ")
 
+#-----------------------------------------------------------------------------
 # List of test that should be explicitly disabled on this machine
+#-----------------------------------------------------------------------------
 set(TEST_TO_EXCLUDE_REGEX "")
 
-# set any extra environment variables here
-set(ENV{DISPLAY} ":0")
+#-----------------------------------------------------------------------------
+# Set any extra environment variables here
+#-----------------------------------------------------------------------------
+if(UNIX)
+  set(ENV{DISPLAY} ":0")
+endif()
 
+#-----------------------------------------------------------------------------
+# Required executables
+#-----------------------------------------------------------------------------
+find_program(CTEST_GIT_COMMAND NAMES git)
 find_program(CTEST_COVERAGE_COMMAND NAMES gcov)
 find_program(CTEST_MEMORYCHECK_COMMAND NAMES valgrind)
-find_program(CTEST_GIT_COMMAND NAMES git)
 
-#
-# Git repository - Overwrite the default value provided by the driver script
-#
-# set(GIT_REPOSITORY http://github.com/YOURUSERNAME/CTK.git)
+#-----------------------------------------------------------------------------
+# Build Name
+#-----------------------------------------------------------------------------
+# Update the following variable to match the chosen build options. This variable is used to
+# generate both the build directory and the build name.
+# See http://my.cdash.org/CDash/index.php?project=CTK for examples
+set(BUILD_OPTIONS_STRING "${MY_BITNESS}bits-QT${MY_QT_VERSION}")
+
+#-----------------------------------------------------------------------------
+# Directory name
+#-----------------------------------------------------------------------------
+set(DIRECTORY_NAME "CTK")
+
+#-----------------------------------------------------------------------------
+# Build directory
+#-----------------------------------------------------------------------------
+set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${DIRECTORY_NAME}-${DIRECTORY_IDENTIFIER}-build")
+file(WRITE "${CTEST_DASHBOARD_ROOT}/${DIRECTORY_NAME}-${DIRECTORY_IDENTIFIER}-build - ${BUILD_OPTIONS_STRING}-${CTEST_BUILD_CONFIGURATION}-${SCRIPT_MODE}.txt" "Generated by ${CTEST_SCRIPT_NAME}")
+
+#-----------------------------------------------------------------------------
+# Source directory
+#-----------------------------------------------------------------------------
+set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${DIRECTORY_NAME}-${DIRECTORY_IDENTIFIER}")
+
 
 ##########################################
 # WARNING: DO NOT EDIT BEYOND THIS POINT #
@@ -87,33 +132,38 @@ set(CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}")
 # Project specific properties
 #
 set(CTEST_PROJECT_NAME "CTK")
-set(CTEST_BUILD_NAME "${MY_OPERATING_SYSTEM}-${MY_COMPILER}-QT${MY_QT_VERSION}-${CTEST_BUILD_CONFIGURATION}")
+set(CTEST_BUILD_NAME "${MY_OPERATING_SYSTEM}-${MY_COMPILER}-${BUILD_OPTIONS_STRING}-${CTEST_BUILD_CONFIGURATION}")
 
 #
 # Display build info
 #
-message("site name: ${CTEST_SITE}")
-message("build name: ${CTEST_BUILD_NAME}")
-message("script mode: ${SCRIPT_MODE}")
-message("coverage: ${WITH_COVERAGE}, memcheck: ${WITH_MEMCHECK}")
+message("CTEST_SITE ................: ${CTEST_SITE}")
+message("CTEST_BUILD_NAME ..........: ${CTEST_BUILD_NAME}")
+message("SCRIPT_MODE ...............: ${SCRIPT_MODE}")
+message("CTEST_BUILD_CONFIGURATION .: ${CTEST_BUILD_CONFIGURATION}")
+message("WITH_KWSTYLE ..............: ${WITH_KWSTYLE}")
+message("WITH_COVERAGE: ............: ${WITH_COVERAGE}")
+message("WITH_MEMCHECK .............: ${WITH_MEMCHECK}")
+message("WITH_PACKAGES .............: ${WITH_PACKAGES}")
+message("WITH_DOCUMENTATION ........: ${WITH_DOCUMENTATION}")
+message("DOCUMENTATION_ARCHIVES_OUTPUT_DIRECTORY: ${DOCUMENTATION_ARCHIVES_OUTPUT_DIRECTORY}")
 
 #
-# Convenient macro allowing to download a file
+# Convenient function allowing to download a file
 #
-macro(downloadFile url dest)
+function(download_file url dest)
   file(DOWNLOAD ${url} ${dest} STATUS status)
   list(GET status 0 error_code)
   list(GET status 1 error_msg)
   if(error_code)
     message(FATAL_ERROR "error: Failed to download ${url} - ${error_msg}")
   endif()
-endmacro()
+endfunction()
 
 #
 # Download and include dashboard driver script 
 #
-set(url http://commontk.org/ctkDashboardDriverScript.cmake)
+set(url https://raw.githubusercontent.com/commontk/CTK/master/CMake/ctkDashboardDriverScript.cmake)
 set(dest ${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}.driver)
-downloadfile(${url} ${dest})
+download_file(${url} ${dest})
 include(${dest})
-