瀏覽代碼

ENH: Update Libs/DICOM/Core/CMakeLists.txt, now requires DCMTK.

Jean-Christophe Fillion-Robin 15 年之前
父節點
當前提交
123bebefca
共有 3 個文件被更改,包括 29 次插入11 次删除
  1. 10 0
      Libs/DICOM/Core/CMakeLists.txt
  2. 1 0
      Libs/DICOM/Core/target_libraries.cmake
  3. 18 11
      SuperBuild.cmake

+ 10 - 0
Libs/DICOM/Core/CMakeLists.txt

@@ -1,6 +1,15 @@
 PROJECT(CTKDICOMCore)
 
 #
+# 3rd party dependencies
+#
+
+FIND_PACKAGE(DCMTK)
+IF(NOT DCMTK_FOUND)
+  MESSAGE(FATAL_ERROR "error: DCMTK package is required to build ${PROJECT_NAME}")
+ENDIF()
+
+#
 # See CTK/CMake/CTKBuildQtLibMacro.cmake for details
 #
 
@@ -8,6 +17,7 @@ SET(KIT_export_directive "Q_CTK_DICOM_CORE_EXPORT")
 
 # Additional directories to include
 SET(KIT_include_directories
+  ${DCMTK_INCLUDE_DIR}
   )
   
 # Source files

+ 1 - 0
Libs/DICOM/Core/target_libraries.cmake

@@ -6,4 +6,5 @@
 
 SET(target_libraries
   CTKCore
+  ${DCMTK_LIBRARIES}
   )

+ 18 - 11
SuperBuild.cmake

@@ -6,6 +6,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION ${cmake_version_required})
 # 
 # CTK_QMAKE_EXECUTABLE
 # CTK_KWSTYLE_EXECUTABLE
+# CTK_DCMTK_DIR
 #
 
 #-----------------------------------------------------------------------------
@@ -17,7 +18,7 @@ SET(ep_base "${CMAKE_BINARY_DIR}/CMakeExternals")
 SET_PROPERTY(DIRECTORY PROPERTY EP_BASE ${ep_base})
 
 SET(ep_install_dir ${ep_base}/Install)
-#SET(ep_build_dir ${ep_base}/Build)
+SET(ep_build_dir ${ep_base}/Build)
 #SET(ep_parallelism_level)
 SET(ep_build_shared_libs ON)
 SET(ep_build_testing OFF)
@@ -70,15 +71,20 @@ ENDIF()
 #-----------------------------------------------------------------------------
 # Utilities/DCMTK
 #
-SET(proj DCMTK)
-ExternalProject_Add(${proj}
-    DOWNLOAD_COMMAND ""
-    INSTALL_COMMAND "" # TODO DCMTK should be installable 
-    CMAKE_GENERATOR ${gen}
-    SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Utilities/DCMTK
-    CMAKE_ARGS
-      ${ep_common_args}
-    )
+SET (DCMTK_DEPENDS)
+IF (NOT DEFINED CTK_DCMTK_DIR)
+  SET(proj DCMTK)
+  SET(DCMTK_DEPENDS ${proj})
+  ExternalProject_Add(${proj}
+      DOWNLOAD_COMMAND ""
+      CMAKE_GENERATOR ${gen}
+      SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Utilities/${proj}
+      CMAKE_ARGS
+        ${ep_common_args}
+        -DDCMTK_BUILD_APPS:BOOL=ON # Build also dmctk tools (movescu, storescp, ...)
+      )
+  SET(CTK_DCMTK_DIR ${ep_install_dir})
+ENDIF()
 
 #-----------------------------------------------------------------------------
 # Utilities/ZMQ
@@ -104,7 +110,7 @@ ExternalProject_Add(${proj}
   INSTALL_COMMAND ""
   DEPENDS
     ${kwstyle_DEPENDS}
-    "DCMTK"
+    ${DCMTK_DEPENDS}
     "ZMQ"
 )
   
@@ -150,6 +156,7 @@ ExternalProject_Add(${proj}
     -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
     -DCTK_QMAKE_EXECUTABLE:FILEPATH=${CTK_QMAKE_EXECUTABLE}
     -DCTK_KWSTYLE_EXECUTABLE:FILEPATH=${CTK_KWSTYLE_EXECUTABLE}
+    -DDCMTK_DIR=${CTK_DCMTK_DIR} # FindDCMTK expects DCMTK_DIR
   SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
   BINARY_DIR ${CMAKE_BINARY_DIR}/CTK-build
   BUILD_COMMAND ""