浏览代码

COMP: Superbuild - Update external project script to check if the provided DIR is valid

Indeed, it was already possible to provide an external directory
 containing the required external project. That way, CTK superbuild script
won't download it.

Before that fix, if the directory didn't exist, the error was thrown
at compile time.

Now a message is outputted at configured time.
Jean-Christophe Fillion-Robin 15 年之前
父节点
当前提交
dcdac9680f

+ 7 - 1
CMakeExternals/CTKData.cmake

@@ -3,6 +3,12 @@
 #
 SET(CTKData_DEPENDS)
 IF(BUILD_TESTING)
+  
+  # Sanity checks
+  IF(DEFINED CTKData_DIR AND NOT EXISTS ${CTKData_DIR})
+    MESSAGE(FATAL_ERROR "CTKData_DIR variable is defined but corresponds to non-existing directory")
+  ENDIF()
+  
   IF(NOT DEFINED CTKData_DIR)
     SET(proj CTKData)
   #   MESSAGE(STATUS "Adding project:${proj}")
@@ -14,5 +20,5 @@ IF(BUILD_TESTING)
         INSTALL_COMMAND ""
         )
 	  SET(CTKData_DIR ${ep_build_dir}/${proj})
-	ENDIF()
+  ENDIF()
 ENDIF()

+ 7 - 1
CMakeExternals/DCMTK.cmake

@@ -5,6 +5,12 @@
 SET(DCMTK_DEPENDS)
 ctkMacroShouldAddExternalProject(DCMTK_LIBRARIES add_project)
 IF(${add_project})
+  
+  # Sanity checks
+  IF(DEFINED DCMTK_DIR AND NOT EXISTS ${DCMTK_DIR})
+    MESSAGE(FATAL_ERROR "DCMTK_DIR variable is defined but corresponds to non-existing directory")
+  ENDIF()
+  
   IF(NOT DEFINED DCMTK_DIR)
     SET(proj DCMTK)
 #     MESSAGE(STATUS "Adding project:${proj}")
@@ -27,4 +33,4 @@ IF(${add_project})
       WORKING_DIRECTORY ${ep_build_dir}/${proj}
       )
   ENDIF()
-ENDIF()
+ENDIF()

+ 7 - 1
CMakeExternals/KWStyle.cmake

@@ -3,6 +3,12 @@
 #
 SET(kwstyle_DEPENDS)
 IF(CTK_USE_KWSTYLE)
+  
+  # Sanity checks
+  IF(DEFINED CTK_KWSTYLE_EXECUTABLE AND NOT EXISTS ${CTK_KWSTYLE_EXECUTABLE})
+    MESSAGE(FATAL_ERROR "CTK_KWSTYLE_EXECUTABLE variable is defined but corresponds to non-existing executable")
+  ENDIF()
+  
   IF(NOT DEFINED CTK_KWSTYLE_EXECUTABLE)
     SET(proj KWStyle-CVSHEAD)
     SET(kwstyle_DEPENDS ${proj})
@@ -16,4 +22,4 @@ IF(CTK_USE_KWSTYLE)
       )
     SET(CTK_KWSTYLE_EXECUTABLE ${ep_install_dir}/bin/KWStyle)
   ENDIF()
-ENDIF()
+ENDIF()

+ 7 - 1
CMakeExternals/OpenIGTLink.cmake

@@ -4,6 +4,12 @@
 SET (OpenIGTLink_DEPENDS)
 ctkMacroShouldAddExternalProject(OpenIGTLink_LIBRARIES add_project)
 IF(${add_project})
+  
+  # Sanity checks
+  IF(DEFINED OpenIGTLink_DIR AND NOT EXISTS ${OpenIGTLink_DIR})
+    MESSAGE(FATAL_ERROR "OpenIGTLink_DIR variable is defined but corresponds to non-existing directory")
+  ENDIF()
+  
   IF(NOT DEFINED OpenIGTLink_DIR)
     SET(proj OpenIGTLink)
   #   MESSAGE(STATUS "Adding project:${proj}")
@@ -17,4 +23,4 @@ IF(${add_project})
         )
     SET(OpenIGTLink_DIR ${ep_build_dir}/${proj})
   ENDIF()
-ENDIF()
+ENDIF()

+ 6 - 0
CMakeExternals/PythonQt.cmake

@@ -4,6 +4,12 @@
 SET(PythonQt_DEPENDS)
 ctkMacroShouldAddExternalProject(PYTHONQT_LIBRARIES add_project)
 IF(${add_project})
+  
+  # Sanity checks
+  IF(DEFINED PYTHONQT_INSTALL_DIR AND NOT EXISTS ${PYTHONQT_INSTALL_DIR})
+    MESSAGE(FATAL_ERROR "PYTHONQT_INSTALL_DIR variable is defined but corresponds to non-existing directory")
+  ENDIF()
+  
   IF(NOT DEFINED PYTHONQT_INSTALL_DIR)
     SET(proj PythonQt)
   #   MESSAGE(STATUS "Adding project:${proj}")

+ 7 - 1
CMakeExternals/VTK.cmake

@@ -4,6 +4,12 @@
 SET (VTK_DEPENDS)
 ctkMacroShouldAddExternalProject(VTK_LIBRARIES add_project)
 IF(${add_project})
+  
+  # Sanity checks
+  IF(DEFINED VTK_DIR AND NOT EXISTS ${VTK_DIR})
+    MESSAGE(FATAL_ERROR "VTK_DIR variable is defined but corresponds to non-existing directory")
+  ENDIF()
+  
   IF(NOT DEFINED VTK_DIR)
     SET(proj VTK)
 #     MESSAGE(STATUS "Adding project:${proj}")
@@ -26,4 +32,4 @@ IF(${add_project})
       )
     SET(VTK_DIR ${ep_build_dir}/${proj})
   ENDIF()
-ENDIF()
+ENDIF()

+ 21 - 13
CMakeExternals/ZMQ.cmake

@@ -4,18 +4,26 @@
 SET(ZMQ_DEPENDS)
 ctkMacroShouldAddExternalProject(ZMQ_LIBRARIES add_project)
 IF(${add_project})
-  SET(proj ZMQ)
-#   MESSAGE(STATUS "Adding project:${proj}")
-  SET(ZMQ_DEPENDS ${proj})
-  ExternalProject_Add(${proj}
-      GIT_REPOSITORY git://github.com/PatrickCheng/zeromq2.git
-      INSTALL_COMMAND ""
-      CMAKE_GENERATOR ${gen}
-      CMAKE_ARGS
-        ${ep_common_args}
-		-DBUILD_SHARED_LIBS:BOOL=ON 
-		-DZMQ_BUILD_DEVICES:BOOL=ON
-		-DZMQ_BUILD_PERFORMANCE_TESTS:BOOL=ON
+
+  # Sanity checks
+  IF(DEFINED ZMQ_DIR AND NOT EXISTS ${ZMQ_DIR})
+    MESSAGE(FATAL_ERROR "ZMQ_DIR variable is defined but corresponds to non-existing directory")
+  ENDIF()
+  
+  IF(NOT DEFINED ZMQ_DIR)
+    SET(proj ZMQ)
+  #   MESSAGE(STATUS "Adding project:${proj}")
+    SET(ZMQ_DEPENDS ${proj})
+    ExternalProject_Add(${proj}
+        GIT_REPOSITORY git://github.com/PatrickCheng/zeromq2.git
+        INSTALL_COMMAND ""
+        CMAKE_GENERATOR ${gen}
+        CMAKE_ARGS
+          ${ep_common_args}
+		  -DBUILD_SHARED_LIBS:BOOL=ON 
+		  -DZMQ_BUILD_DEVICES:BOOL=ON
+		  -DZMQ_BUILD_PERFORMANCE_TESTS:BOOL=ON
       )
 	  SET(ZMQ_DIR ${ep_build_dir}/${proj})
-ENDIF()
+	ENDIF()
+ENDIF()

+ 6 - 0
CMakeExternals/log4qt.cmake

@@ -4,6 +4,12 @@
 SET(log4qt_DEPENDS)
 ctkMacroShouldAddExternalProject(log4qt_LIBRARIES add_project)
 IF(${add_project})
+
+  # Sanity checks
+  IF(DEFINED log4qt_DIR AND NOT EXISTS ${log4qt_DIR})
+    MESSAGE(FATAL_ERROR "log4qt_DIR variable is defined but corresponds to non-existing directory")
+  ENDIF()
+  
   IF(NOT DEFINED log4qt_DIR)
     SET(proj log4qt)
 #     MESSAGE(STATUS "Adding project:${proj}")