Просмотр исходного кода

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
Родитель
Сommit
dcdac9680f

+ 7 - 1
CMakeExternals/CTKData.cmake

@@ -3,6 +3,12 @@
 #
 #
 SET(CTKData_DEPENDS)
 SET(CTKData_DEPENDS)
 IF(BUILD_TESTING)
 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)
   IF(NOT DEFINED CTKData_DIR)
     SET(proj CTKData)
     SET(proj CTKData)
   #   MESSAGE(STATUS "Adding project:${proj}")
   #   MESSAGE(STATUS "Adding project:${proj}")
@@ -14,5 +20,5 @@ IF(BUILD_TESTING)
         INSTALL_COMMAND ""
         INSTALL_COMMAND ""
         )
         )
 	  SET(CTKData_DIR ${ep_build_dir}/${proj})
 	  SET(CTKData_DIR ${ep_build_dir}/${proj})
-	ENDIF()
+  ENDIF()
 ENDIF()
 ENDIF()

+ 7 - 1
CMakeExternals/DCMTK.cmake

@@ -5,6 +5,12 @@
 SET(DCMTK_DEPENDS)
 SET(DCMTK_DEPENDS)
 ctkMacroShouldAddExternalProject(DCMTK_LIBRARIES add_project)
 ctkMacroShouldAddExternalProject(DCMTK_LIBRARIES add_project)
 IF(${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)
   IF(NOT DEFINED DCMTK_DIR)
     SET(proj DCMTK)
     SET(proj DCMTK)
 #     MESSAGE(STATUS "Adding project:${proj}")
 #     MESSAGE(STATUS "Adding project:${proj}")
@@ -27,4 +33,4 @@ IF(${add_project})
       WORKING_DIRECTORY ${ep_build_dir}/${proj}
       WORKING_DIRECTORY ${ep_build_dir}/${proj}
       )
       )
   ENDIF()
   ENDIF()
-ENDIF()
+ENDIF()

+ 7 - 1
CMakeExternals/KWStyle.cmake

@@ -3,6 +3,12 @@
 #
 #
 SET(kwstyle_DEPENDS)
 SET(kwstyle_DEPENDS)
 IF(CTK_USE_KWSTYLE)
 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)
   IF(NOT DEFINED CTK_KWSTYLE_EXECUTABLE)
     SET(proj KWStyle-CVSHEAD)
     SET(proj KWStyle-CVSHEAD)
     SET(kwstyle_DEPENDS ${proj})
     SET(kwstyle_DEPENDS ${proj})
@@ -16,4 +22,4 @@ IF(CTK_USE_KWSTYLE)
       )
       )
     SET(CTK_KWSTYLE_EXECUTABLE ${ep_install_dir}/bin/KWStyle)
     SET(CTK_KWSTYLE_EXECUTABLE ${ep_install_dir}/bin/KWStyle)
   ENDIF()
   ENDIF()
-ENDIF()
+ENDIF()

+ 7 - 1
CMakeExternals/OpenIGTLink.cmake

@@ -4,6 +4,12 @@
 SET (OpenIGTLink_DEPENDS)
 SET (OpenIGTLink_DEPENDS)
 ctkMacroShouldAddExternalProject(OpenIGTLink_LIBRARIES add_project)
 ctkMacroShouldAddExternalProject(OpenIGTLink_LIBRARIES add_project)
 IF(${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)
   IF(NOT DEFINED OpenIGTLink_DIR)
     SET(proj OpenIGTLink)
     SET(proj OpenIGTLink)
   #   MESSAGE(STATUS "Adding project:${proj}")
   #   MESSAGE(STATUS "Adding project:${proj}")
@@ -17,4 +23,4 @@ IF(${add_project})
         )
         )
     SET(OpenIGTLink_DIR ${ep_build_dir}/${proj})
     SET(OpenIGTLink_DIR ${ep_build_dir}/${proj})
   ENDIF()
   ENDIF()
-ENDIF()
+ENDIF()

+ 6 - 0
CMakeExternals/PythonQt.cmake

@@ -4,6 +4,12 @@
 SET(PythonQt_DEPENDS)
 SET(PythonQt_DEPENDS)
 ctkMacroShouldAddExternalProject(PYTHONQT_LIBRARIES add_project)
 ctkMacroShouldAddExternalProject(PYTHONQT_LIBRARIES add_project)
 IF(${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)
   IF(NOT DEFINED PYTHONQT_INSTALL_DIR)
     SET(proj PythonQt)
     SET(proj PythonQt)
   #   MESSAGE(STATUS "Adding project:${proj}")
   #   MESSAGE(STATUS "Adding project:${proj}")

+ 7 - 1
CMakeExternals/VTK.cmake

@@ -4,6 +4,12 @@
 SET (VTK_DEPENDS)
 SET (VTK_DEPENDS)
 ctkMacroShouldAddExternalProject(VTK_LIBRARIES add_project)
 ctkMacroShouldAddExternalProject(VTK_LIBRARIES add_project)
 IF(${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)
   IF(NOT DEFINED VTK_DIR)
     SET(proj VTK)
     SET(proj VTK)
 #     MESSAGE(STATUS "Adding project:${proj}")
 #     MESSAGE(STATUS "Adding project:${proj}")
@@ -26,4 +32,4 @@ IF(${add_project})
       )
       )
     SET(VTK_DIR ${ep_build_dir}/${proj})
     SET(VTK_DIR ${ep_build_dir}/${proj})
   ENDIF()
   ENDIF()
-ENDIF()
+ENDIF()

+ 21 - 13
CMakeExternals/ZMQ.cmake

@@ -4,18 +4,26 @@
 SET(ZMQ_DEPENDS)
 SET(ZMQ_DEPENDS)
 ctkMacroShouldAddExternalProject(ZMQ_LIBRARIES add_project)
 ctkMacroShouldAddExternalProject(ZMQ_LIBRARIES add_project)
 IF(${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})
 	  SET(ZMQ_DIR ${ep_build_dir}/${proj})
-ENDIF()
+	ENDIF()
+ENDIF()

+ 6 - 0
CMakeExternals/log4qt.cmake

@@ -4,6 +4,12 @@
 SET(log4qt_DEPENDS)
 SET(log4qt_DEPENDS)
 ctkMacroShouldAddExternalProject(log4qt_LIBRARIES add_project)
 ctkMacroShouldAddExternalProject(log4qt_LIBRARIES add_project)
 IF(${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)
   IF(NOT DEFINED log4qt_DIR)
     SET(proj log4qt)
     SET(proj log4qt)
 #     MESSAGE(STATUS "Adding project:${proj}")
 #     MESSAGE(STATUS "Adding project:${proj}")