Преглед изворни кода

Merge branch '457-revert-to-regular-cdash-submission'

* 457-revert-to-regular-cdash-submission:
  Remove configuration of unneeded Project.xml and CTestConfigSubProject.cmake
  Update dashboard driver script to submit a regular project layout.
Jean-Christophe Fillion-Robin пре 11 година
родитељ
комит
552802dd2a

+ 0 - 1
CMake/CTestConfigSubProject.cmake.in

@@ -1 +0,0 @@
-set(CTEST_PROJECT_SUBPROJECTS @CTEST_PROJECT_SUBPROJECTS@)

+ 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})
-

+ 0 - 108
CMake/ctkFunctionGenerateProjectXml.cmake

@@ -1,108 +0,0 @@
-###########################################################################
-#
-#  Library:   CTK
-#
-#  Copyright (c) Kitware Inc.
-#
-#  Licensed under the Apache License, Version 2.0 (the "License");
-#  you may not use this file except in compliance with the License.
-#  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0.txt
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-#  limitations under the License.
-#
-###########################################################################
-
-#
-#
-#
-
-#! \ingroup CMakeUtilities
-function(ctkFunctionGenerateProjectXml dir name target_directories is_superbuild)
-  if(NOT EXISTS ${dir})
-    message(FATAL_ERROR "Directory ${dir} doesn't exist!")
-  endif()
-
-  set(xml_subprojects )
-
-  if(${is_superbuild})
-    set(xml_subprojects ${xml_subprojects} "  <SubProject name=\"SuperBuild\">\n")
-  endif()
-  
-  set(subproject_list)
-  
-  foreach(target_info ${target_directories})
-
-    # extract target_dir and option_name
-    string(REPLACE "^^" "\\;" target_info ${target_info})
-    set(target_info_list ${target_info})
-    list(GET target_info_list 0 target_dir)
-    list(GET target_info_list 1 option_name)
-    #message(STATUS target_dir:${target_dir})
-    #message(STATUS option_name:${option_name})
-    
-    # make sure the directory exists
-    if(NOT EXISTS ${target_dir}/CMakeLists.txt)
-      message(FATAL_ERROR "Target directory ${target_dir}/CMakeLists.txt doesn't exists !")
-    endif()
-
-    # Remarks: Project.xml should contains all sub-project. That way
-    # all dashboards should submit a similar file.
-    #if(${${option_name}})
-
-      # extract project name from CMakeLists.txt
-      file(STRINGS "${target_dir}/CMakeLists.txt" project_string
-        REGEX "^ *(P|p)(R|r)(O|o)(J|j)(E|e)(C|c)(T|t)\\("
-        LIMIT_COUNT 10)
-      string(REGEX MATCH "\\((.*)\\)" target_project_name ${project_string})
-      string(REGEX REPLACE "\\(|\\)" "" target_project_name ${target_project_name})
-      if(${target_project_name} STREQUAL "")
-        message(FATAL_ERROR "Failed to extract project name from ${target_dir}/CMakeLists.txt")
-      endif()
-      #message(STATUS target_project_name:${target_project_name})
-      
-      set(xml_subprojects ${xml_subprojects} "  <SubProject name=\"${target_project_name}\">\n")
-      list(APPEND subproject_list ${target_project_name})
-      
-      # Make sure the variable is cleared
-      set(dependencies )
-
-      # get dependencies
-      ctkFunctionCollectTargetLibraryNames(${target_dir} dependencies)
-      
-      # Make sure the variable is cleared
-      set(ctk_dependencies)
-
-      # filter dependencies starting with CTK
-      ctkMacroGetAllProjectTargetLibraries("${dependencies}" ctk_dependencies)
-
-      if(${is_superbuild})
-        set(xml_subprojects ${xml_subprojects} "    <Dependency name=\"SuperBuild\"/>\n")
-      endif()
-      
-      # Generate XML related to the dependencies 
-      foreach(dependency_name ${ctk_dependencies})
-        set(xml_subprojects ${xml_subprojects} "    <Dependency name=\"${dependency_name}\"/>\n")
-      endforeach()
-      
-      set(xml_subprojects ${xml_subprojects} "  </SubProject>\n")
-    #endif()
-  endforeach()
-  
-  set(xml_subprojects ${xml_subprojects} "  <SubProject name=\"Documentation\">\n")
-  foreach(subproject ${subproject_list})
-    set(xml_subprojects ${xml_subprojects} "    <Dependency name=\"${subproject}\"/>\n")
-  endforeach()
-  set(xml_subprojects ${xml_subprojects} "  </SubProject>\n")
-   
-  set(xml_content "<Project name=\"${name}\">\n${xml_subprojects}</Project>")
-  set(filename "${dir}/Project.xml")
-
-  file(WRITE ${filename} ${xml_content})
-  message(STATUS "Generated: ${filename}")
-endfunction()

+ 1 - 12
CMakeLists.txt

@@ -875,21 +875,10 @@ set(CTEST_PROJECT_SUBPROJECTS ${CTEST_PROJECT_SUBPROJECTS})
 
 # If the list of subproject is empty, let's at least build CTKCore
 list(LENGTH CTEST_PROJECT_SUBPROJECTS subproject_count)
-IF (subproject_count EQUAL 0)
+if(subproject_count EQUAL 0)
   set(CTEST_PROJECT_SUBPROJECTS CTKCore)
 endif()
 
-# Configure CTestConfigSubProject.cmake that could be used by CTest scripts
-configure_file(${CTK_SOURCE_DIR}/CMake/CTestConfigSubProject.cmake.in
-               ${CTK_BINARY_DIR}/CTestConfigSubProject.cmake)
-
-#-----------------------------------------------------------------------------
-# Project.xml
-#
-
-# Generate Project.xml file expected by the CTest driver script
-ctkFunctionGenerateProjectXml(${CTK_BINARY_DIR} ${PROJECT_NAME} "${target_directories}" ${CTK_SUPERBUILD})
-
 #-----------------------------------------------------------------------------
 # CTK dependencies - Projects should be TOPOLOGICALLY ordered
 #-----------------------------------------------------------------------------