Explorar el Código

Add ITK external project

Jean-Christophe Fillion-Robin hace 14 años
padre
commit
cd7297cc60
Se han modificado 2 ficheros con 58 adiciones y 1 borrados
  1. 54 0
      CMakeExternals/ITK.cmake
  2. 4 1
      SuperBuild.cmake

+ 54 - 0
CMakeExternals/ITK.cmake

@@ -0,0 +1,54 @@
+#
+# ITK
+#
+SET (ITK_DEPENDS)
+ctkMacroShouldAddExternalProject(ITK_LIBRARIES add_project)
+IF(${add_project})
+  # Sanity checks
+  IF(DEFINED ITK_DIR AND NOT EXISTS ${ITK_DIR})
+    MESSAGE(FATAL_ERROR "ITK_DIR variable is defined but corresponds to non-existing directory")
+  ENDIF()
+
+  SET(ITK_enabling_variable ITK_LIBRARIES)
+  
+  SET(proj ITK)
+  SET(proj_DEPENDENCIES)
+  
+  SET(ITK_DEPENDS ${proj})
+  
+  IF(NOT DEFINED ITK_DIR)
+#     MESSAGE(STATUS "Adding project:${proj}")
+    ExternalProject_Add(${proj}
+      GIT_REPOSITORY "${git_protocol}://itk.org/ITK.git"
+      GIT_TAG "origin/master"
+      INSTALL_COMMAND ""
+      CMAKE_GENERATOR ${gen}
+      CMAKE_ARGS
+        ${ep_common_args}
+        -DBUILD_EXAMPLES:BOOL=OFF
+        -DBUILD_SHARED_LIBS:BOOL=ON
+        -DITK_USE_REVIEW:BOOL=ON
+        -DITK_USE_REVIEW_STATISTICS:BOOL=ON
+        -DITK_USE_OPTIMIZED_REGISTRATION_METHODS:BOOL=ON
+        -DITK_USE_PORTABLE_ROUND:BOOL=ON
+        -DITK_USE_CENTERED_PIXEL_COORDINATES_CONSISTENTLY:BOOL=ON
+        -DITK_USE_TRANSFORM_IO_FACTORIES:BOOL=ON
+        -DITK_LEGACY_REMOVE:BOOL=ON
+      DEPENDS
+        ${proj_DEPENDENCIES}
+      )
+    SET(ITK_DIR ${ep_build_dir}/${proj})
+    
+    # Since the link directories associated with ITK is used, it makes sens to 
+    # update CTK_EXTERNAL_LIBRARY_DIRS with its associated library output directory
+    LIST(APPEND CTK_EXTERNAL_LIBRARY_DIRS ${ITK_DIR}/bin)
+    
+  ELSE()
+    ctkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}")
+  ENDIF()
+
+  SET(${ITK_enabling_variable}_LIBRARY_DIRS ITK_LIBRARY_DIRS)
+  SET(${ITK_enabling_variable}_INCLUDE_DIRS ITK_INCLUDE_DIRS)
+  SET(${ITK_enabling_variable}_FIND_PACKAGE_CMD ITK)
+ENDIF()
+

+ 4 - 1
SuperBuild.cmake

@@ -128,6 +128,7 @@ SET(external_projects
   QtSOAP
   OpenIGTLink
   XIP
+  ITK
   )
 
 # Include external projects
@@ -178,7 +179,8 @@ ExternalProject_Add(${proj}
     ${ZMQ_DEPENDS}
     ${OpenIGTLink_DEPENDS}
     ${VTK_DEPENDS}
-    ${XIP_DEPENDS}    
+    ${XIP_DEPENDS}
+    ${ITK_DEPENDS}
 )
 
 #-----------------------------------------------------------------------------
@@ -269,6 +271,7 @@ ExternalProject_Add(${proj}
     -DLog4Qt_DIR:PATH=${Log4Qt_DIR} # FindLog4Qt expects Log4Qt_DIR variable to be defined
     -DQtSOAP_DIR:PATH=${QtSOAP_DIR} # FindQtSOAP expects QtSOAP_DIR variable to be defined
     -DQtMobility_DIR:PATH=${QtMobility_DIR}
+    -DITK_DIR:PATH=${ITK_DIR} # FindITK expects ITK_DIR variable to be defined
     ${dependency_args}
   SOURCE_DIR ${CTK_SOURCE_DIR}
   BINARY_DIR ${CTK_BINARY_DIR}/CTK-build