Sfoglia il codice sorgente

ENH: ctkMacroGenerateProjectXml has now a fourth parameter 'is_superbuild'.

If 'is_superbuild' is true, a subproject named 'SuperBuild' will be included.
All target will also depend on the 'SuperBuild' project.
Jean-Christophe Fillion-Robin 15 anni fa
parent
commit
0da9f756fe
2 ha cambiato i file con 20 aggiunte e 5 eliminazioni
  1. 11 1
      CMake/ctkMacroGenerateProjectXml.cmake
  2. 9 4
      CMakeLists.txt

+ 11 - 1
CMake/ctkMacroGenerateProjectXml.cmake

@@ -3,11 +3,17 @@
 #
 #
 
-MACRO(ctkMacroGenerateProjectXml dir name target_directories)
+MACRO(ctkMacroGenerateProjectXml 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()
+  
   FOREACH(target_info ${target_directories})
 
     # extract target_dir and option_name
@@ -48,6 +54,10 @@ MACRO(ctkMacroGenerateProjectXml dir name target_directories)
     # filter dependencies starting with CTK
     ctkMacroGetAllCTKTargetLibraries("${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")

+ 9 - 4
CMakeLists.txt

@@ -183,6 +183,13 @@ FOREACH(app ${CTK_APPLICATIONS})
   OPTION(CTK_APP_${app} "Build ${app} Application." ON)
 ENDFOREACH()
 
+
+#-----------------------------------------------------------------------------
+# Superbuild Option - Enabled by default
+#
+OPTION(CTK_SUPERBUILD "Build CTK and the projects it depends on via SuperBuild.cmake." ON)
+MARK_AS_ADVANCED(CTK_SUPERBUILD)
+
 #-----------------------------------------------------------------------------
 # Project.xml
 #
@@ -214,7 +221,7 @@ ENDFOREACH()
 #MESSAGE(STATUS target_directories:${target_directories})
 
 # Generate Project.xml file expected by the CTest driver script
-ctkMacroGenerateProjectXml(${CTK_BINARY_DIR} ${PROJECT_NAME} "${target_directories}")
+ctkMacroGenerateProjectXml(${CTK_BINARY_DIR} ${PROJECT_NAME} "${target_directories}" ${CTK_SUPERBUILD})
 
 #-----------------------------------------------------------------------------
 # Collect CTK library target dependencies
@@ -232,10 +239,8 @@ CONFIGURE_FILE(${CTK_SOURCE_DIR}/CTestConfigSubProject.cmake.in
                ${CTK_BINARY_DIR}/CTestConfigSubProject.cmake)
 
 #-----------------------------------------------------------------------------
-# Superbuild is used by default
+# Superbuild script
 #
-OPTION(CTK_SUPERBUILD "Build CTK and the projects it depends on via SuperBuild.cmake." ON)
-MARK_AS_ADVANCED(CTK_SUPERBUILD)
 
 IF(CTK_SUPERBUILD)
   INCLUDE("${CMAKE_CURRENT_SOURCE_DIR}/SuperBuild.cmake")