|
@@ -34,16 +34,26 @@
|
|
|
# Modified for EasyViz by Thomas Sondergaard.
|
|
|
#
|
|
|
|
|
|
-# prefer DCMTK_DIR over default system paths like /usr/lib
|
|
|
-set(CMAKE_PREFIX_PATH ${DCMTK_DIR}/lib ${CMAKE_PREFIX_PATH}) # this is given to FIND_LIBRARY or FIND_PATH
|
|
|
+#
|
|
|
+# First, try to use NO_MODULE
|
|
|
+set(_DCMTK_REQUIRED)
|
|
|
+set(_DCMTK_QUIET)
|
|
|
+if(DCMTK_FIND_QUIETLY)
|
|
|
+ set(_DCMTK_QUIET QUIET)
|
|
|
+endif()
|
|
|
+if(DCMTK_FIND_REQUIRED)
|
|
|
+ set(_DCMTK_REQUIRED REQUIRED)
|
|
|
+endif()
|
|
|
+find_package(DCMTK ${_DCMTK_REQUIRED} ${_DCMTK_QUIET} NO_MODULE)
|
|
|
+if(DCMTK_FOUND
|
|
|
+ AND NOT "x" STREQUAL "x${DCMTK_LIBRARIES}"
|
|
|
+ AND NOT "x" STREQUAL "x${DCMTK_INCLUDE_DIRS}")
|
|
|
+ return()
|
|
|
+endif()
|
|
|
|
|
|
-if(NOT DCMTK_FOUND AND NOT DCMTK_DIR)
|
|
|
- set(DCMTK_DIR
|
|
|
- "/usr/include/dcmtk/"
|
|
|
- CACHE
|
|
|
- PATH
|
|
|
- "Root of DCMTK source tree (optional).")
|
|
|
- mark_as_advanced(DCMTK_DIR)
|
|
|
+# prefer DCMTK_DIR over default system paths like /usr/lib
|
|
|
+if(DCMTK_DIR)
|
|
|
+ set(CMAKE_PREFIX_PATH ${DCMTK_DIR}/lib ${CMAKE_PREFIX_PATH}) # this is given to FIND_LIBRARY or FIND_PATH
|
|
|
endif()
|
|
|
|
|
|
# Find all libraries, store debug and release separately
|
|
@@ -118,6 +128,20 @@ if(CMAKE_THREAD_LIBS_INIT)
|
|
|
list(APPEND DCMTK_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
|
|
|
endif()
|
|
|
|
|
|
+#
|
|
|
+# SPECIFIC CASE FOR DCMTK BUILD DIR as DCMTK_DIR
|
|
|
+# (as opposed to a DCMTK install dir)
|
|
|
+# Have to find the source directory.
|
|
|
+if(EXISTS ${DCMTK_DIR}/CMakeCache.txt)
|
|
|
+ load_cache(${DCMTK_DIR} READ_WITH_PREFIX "EXT"
|
|
|
+ DCMTK_SOURCE_DIR)
|
|
|
+ if(NOT EXISTS ${EXTDCMTK_SOURCE_DIR})
|
|
|
+ message(FATAL_ERROR
|
|
|
+ "DCMTK build directory references
|
|
|
+nonexistant DCMTK source directory ${EXTDCMTK_SOURCE_DIR}")
|
|
|
+ endif()
|
|
|
+endif()
|
|
|
+
|
|
|
set(DCMTK_config_TEST_HEADER osconfig.h)
|
|
|
set(DCMTK_dcmdata_TEST_HEADER dctypes.h)
|
|
|
set(DCMTK_dcmimage_TEST_HEADER dicoimg.h)
|
|
@@ -130,6 +154,10 @@ set(DCMTK_dcmsign_TEST_HEADER sicert.h)
|
|
|
set(DCMTK_dcmsr_TEST_HEADER dsrtree.h)
|
|
|
set(DCMTK_dcmtls_TEST_HEADER tlslayer.h)
|
|
|
set(DCMTK_ofstd_TEST_HEADER ofstdinc.h)
|
|
|
+set(DCMTK_oflog_TEST_HEADER oflog.h)
|
|
|
+set(DCMTK_dcmjpls_TEST_HEADER djlsutil.h)
|
|
|
+
|
|
|
+set(DCMTK_INCLUDE_DIR_NAMES)
|
|
|
|
|
|
foreach(dir
|
|
|
config
|
|
@@ -137,28 +165,43 @@ foreach(dir
|
|
|
dcmimage
|
|
|
dcmimgle
|
|
|
dcmjpeg
|
|
|
+ dcmjpls
|
|
|
dcmnet
|
|
|
dcmpstat
|
|
|
dcmqrdb
|
|
|
dcmsign
|
|
|
dcmsr
|
|
|
dcmtls
|
|
|
- ofstd)
|
|
|
+ ofstd
|
|
|
+ oflog)
|
|
|
+ if(EXTDCMTK_SOURCE_DIR)
|
|
|
+ set(SOURCE_DIR_PATH
|
|
|
+ ${EXTDCMTK_SOURCE_DIR}/${dir}/include/dcmtk/${dir})
|
|
|
+ endif()
|
|
|
find_path(DCMTK_${dir}_INCLUDE_DIR
|
|
|
${DCMTK_${dir}_TEST_HEADER}
|
|
|
PATHS
|
|
|
${DCMTK_DIR}/${dir}/include
|
|
|
${DCMTK_DIR}/${dir}
|
|
|
${DCMTK_DIR}/include/dcmtk/${dir}
|
|
|
- ${DCMTK_DIR}/include/${dir})
|
|
|
+ ${DCMTK_DIR}/${dir}/include/dcmtk/${dir}
|
|
|
+ ${DCMTK_DIR}/include/${dir}
|
|
|
+ ${SOURCE_DIR_PATH}
|
|
|
+ )
|
|
|
|
|
|
mark_as_advanced(DCMTK_${dir}_INCLUDE_DIR)
|
|
|
- #message("** DCMTKs ${dir} found at ${DCMTK_${dir}_INCLUDE_DIR}")
|
|
|
+ list(APPEND DCMTK_INCLUDE_DIR_NAMES DCMTK_${dir}_INCLUDE_DIR)
|
|
|
|
|
|
if(DCMTK_${dir}_INCLUDE_DIR)
|
|
|
+ # add the 'include' path so eg
|
|
|
+ #include "dcmtk/dcmimgle/dcmimage.h"
|
|
|
+ # works
|
|
|
+ get_filename_component(_include ${DCMTK_${dir}_INCLUDE_DIR} PATH)
|
|
|
+ get_filename_component(_include ${_include} PATH)
|
|
|
list(APPEND
|
|
|
DCMTK_INCLUDE_DIRS
|
|
|
- ${DCMTK_${dir}_INCLUDE_DIR})
|
|
|
+ ${DCMTK_${dir}_INCLUDE_DIR}
|
|
|
+ ${_include})
|
|
|
endif()
|
|
|
endforeach()
|
|
|
|
|
@@ -179,3 +222,8 @@ endif()
|
|
|
|
|
|
# Compatibility: This variable is deprecated
|
|
|
set(DCMTK_INCLUDE_DIR ${DCMTK_INCLUDE_DIRS})
|
|
|
+
|
|
|
+find_package_handle_standard_args(DCMTK
|
|
|
+ REQUIRED_VARS ${DCMTK_INCLUDE_DIR_NAMES} DCMTK_LIBRARIES
|
|
|
+ FAIL_MESSAGE "Please set DCMTK_DIR and re-run configure")
|
|
|
+
|