diff --git a/CMake/FindDCMTK.cmake b/CMake/FindDCMTK.cmake deleted file mode 100644 index aec7baacfe..0000000000 --- a/CMake/FindDCMTK.cmake +++ /dev/null @@ -1,342 +0,0 @@ -#.rst: -# FindDCMTK -# --------- -# -# Find DCMTK libraries and applications -# -# The module defines the following variables:: -# -# DCMTK_INCLUDE_DIRS - Directories to include to use DCMTK -# DCMTK_LIBRARIES - Files to link against to use DCMTK -# DCMTK_FOUND - If false, don't try to use DCMTK -# DCMTK_DIR - (optional) Source directory for DCMTK -# -# Compatibility -# ^^^^^^^^^^^^^ -# -# This module is able to find a version of DCMTK that does or does not export -# a *DCMTKConfig.cmake* file. It applies a two step process: -# -# * Step 1: Attempt to find DCMTK version providing a *DCMTKConfig.cmake* file. -# * Step 2: If step 1 failed, rely on *FindDCMTK.cmake* to set `DCMTK_*` variables details below. -# -# -# `Recent DCMTK -# `_ -# provides a *DCMTKConfig.cmake* :manual:`package configuration file -# `. To exclusively use the package configuration file -# (recommended when possible), pass the `NO_MODULE` option to -# :command:`find_package`. For example, `find_package(DCMTK NO_MODULE)`. -# This requires official DCMTK snapshot *3.6.1_20140617* or newer. -# -# -# Until all clients update to the more recent DCMTK, build systems will need -# to support different versions of DCMTK. -# -# On any given system, the following combinations of DCMTK versions could be -# considered: -# -# +--------+---------------------+-----------------------+-------------------+ -# | | SYSTEM DCMTK | LOCAL DCMTK | Supported ? | -# +--------+---------------------+-----------------------+-------------------+ -# | Case A | NA | [ ] DCMTKConfig | YES | -# +--------+---------------------+-----------------------+-------------------+ -# | Case B | NA | [X] DCMTKConfig | YES | -# +--------+---------------------+-----------------------+-------------------+ -# | Case C | [ ] DCMTKConfig | NA | YES | -# +--------+---------------------+-----------------------+-------------------+ -# | Case D | [X] DCMTKConfig | NA | YES | -# +--------+---------------------+-----------------------+-------------------+ -# | Case E | [ ] DCMTKConfig | [ ] DCMTKConfig | YES (*) | -# +--------+---------------------+-----------------------+-------------------+ -# | Case F | [X] DCMTKConfig | [ ] DCMTKConfig | NO | -# +--------+---------------------+-----------------------+-------------------+ -# | Case G | [ ] DCMTKConfig | [X] DCMTKConfig | YES | -# +--------+---------------------+-----------------------+-------------------+ -# | Case H | [X] DCMTKConfig | [X] DCMTKConfig | YES | -# +--------+---------------------+-----------------------+-------------------+ -# -# (*) See Troubleshooting section. -# -# Legend: -# -# NA ...............: Means that no System or Local DCMTK is available -# -# [ ] DCMTKConfig ..: Means that the version of DCMTK does NOT export a DCMTKConfig.cmake file. -# -# [X] DCMTKConfig ..: Means that the version of DCMTK exports a DCMTKConfig.cmake file. -# -# -# Troubleshooting -# ^^^^^^^^^^^^^^^ -# -# What to do if my project finds a different version of DCMTK? -# -# Remove DCMTK entry from the CMake cache per :command:`find_package` -# documentation. - -#============================================================================= -# Copyright 2004-2009 Kitware, Inc. -# Copyright 2009-2010 Mathieu Malaterre -# Copyright 2010 Thomas Sondergaard -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of CMake, substitute the full -# License text for the above reference.) - -# -# Written for VXL by Amitha Perera. -# Upgraded for GDCM by Mathieu Malaterre. -# Modified for EasyViz by Thomas Sondergaard. -# - -set(_dcmtk_dir_description "The directory of DCMTK build or install tree.") - -# Ensure that DCMTK_DIR is set to a reasonable default value -# so that DCMTK libraries can be found on a standard Unix distribution. -# It also overwrite the value of DCMTK_DIR after this one has been -# set by a successful discovery of DCMTK by the unpatched FindDCMTK.cmake module -# distributed with CMake (as of 0167cea) -if(NOT DCMTK_DIR OR DCMTK_DIR STREQUAL "/usr/include/dcmtk") - set(DCMTK_DIR "/usr" CACHE PATH ${_dcmtk_dir_description} FORCE) -endif() - -set(_SAVED_DCMTK_DIR ${DCMTK_DIR}) - -# -# Step1: Attempt to find a version of DCMTK providing a DCMTKConfig.cmake file. -# -if(NOT DCMTK_FIND_QUIETLY) - message(STATUS "Trying to find DCMTK expecting DCMTKConfig.cmake") -endif() -find_package(DCMTK QUIET NO_MODULE) -if(DCMTK_FOUND - AND NOT "x" STREQUAL "x${DCMTK_LIBRARIES}" - AND NOT "x" STREQUAL "x${DCMTK_INCLUDE_DIRS}") - - if(NOT DCMTK_FIND_QUIETLY) - message(STATUS "Trying to find DCMTK expecting DCMTKConfig.cmake - ok") - endif() - return() -else() - if(NOT DCMTK_FIND_QUIETLY) - message(STATUS "Trying to find DCMTK expecting DCMTKConfig.cmake - failed") - endif() -endif() - -if(NOT DCMTK_FIND_QUIETLY) - message(STATUS "Trying to find DCMTK relying on FindDCMTK.cmake") -endif() - -# Restore the value reset by the previous call to 'find_package(DCMTK QUIET NO_MODULE)' -set(DCMTK_DIR ${_SAVED_DCMTK_DIR} CACHE PATH ${_dcmtk_dir_description} FORCE) - - -# -# Step2: Attempt to find a version of DCMTK that does NOT provide a DCMTKConfig.cmake file. -# - -# 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 -foreach(lib - dcmpstat - dcmsr - dcmsign - dcmtls - dcmqrdb - dcmnet - dcmjpeg - dcmimage - dcmimgle - dcmdata - dcmpmap - oflog - ofstd - ijg12 - ijg16 - ijg8 - ) - - # Find Release libraries - find_library(DCMTK_${lib}_LIBRARY_RELEASE - ${lib} - PATHS - ${DCMTK_DIR}/${lib}/libsrc - ${DCMTK_DIR}/${lib}/libsrc/Release - ${DCMTK_DIR}/${lib}/Release - ${DCMTK_DIR}/lib - ${DCMTK_DIR}/lib/Release - ${DCMTK_DIR}/dcmjpeg/lib${lib}/Release - NO_DEFAULT_PATH - ) - - # Find Debug libraries - find_library(DCMTK_${lib}_LIBRARY_DEBUG - ${lib}${DCMTK_CMAKE_DEBUG_POSTFIX} - PATHS - ${DCMTK_DIR}/${lib}/libsrc - ${DCMTK_DIR}/${lib}/libsrc/Debug - ${DCMTK_DIR}/${lib}/Debug - ${DCMTK_DIR}/lib - ${DCMTK_DIR}/lib/Debug - ${DCMTK_DIR}/dcmjpeg/lib${lib}/Debug - NO_DEFAULT_PATH - ) - - mark_as_advanced(DCMTK_${lib}_LIBRARY_RELEASE) - mark_as_advanced(DCMTK_${lib}_LIBRARY_DEBUG) - - # Add libraries to variable according to build type - if(DCMTK_${lib}_LIBRARY_RELEASE) - list(APPEND DCMTK_LIBRARIES optimized ${DCMTK_${lib}_LIBRARY_RELEASE}) - endif() - - if(DCMTK_${lib}_LIBRARY_DEBUG) - list(APPEND DCMTK_LIBRARIES debug ${DCMTK_${lib}_LIBRARY_DEBUG}) - endif() - -endforeach() - -set(CMAKE_THREAD_LIBS_INIT) -if(DCMTK_oflog_LIBRARY_RELEASE OR DCMTK_oflog_LIBRARY_DEBUG) - # Hack - Not having a DCMTKConfig.cmake file to read the settings from, we will attempt to - # find the library in all cases. - # Ideally, pthread library should be discovered only if DCMTK_WITH_THREADS is enabled. - set(CMAKE_THREAD_PREFER_PTHREAD TRUE) - find_package(Threads) -endif() - -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) -set(DCMTK_dcmimgle_TEST_HEADER dcmimage.h) -set(DCMTK_dcmjpeg_TEST_HEADER djdecode.h) -set(DCMTK_dcmnet_TEST_HEADER assoc.h) -set(DCMTK_dcmpstat_TEST_HEADER dcmpstat.h) -set(DCMTK_dcmqrdb_TEST_HEADER dcmqrdba.h) -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) -message("Using default CMAKE FindDCMTK") -foreach(dir - config - dcmdata - dcmimage - dcmimgle - dcmjpeg - dcmjpls - dcmnet - dcmpstat - dcmqrdb - dcmsign - dcmsr - dcmtls - dcmpmap - 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}/${dir}/include/dcmtk/${dir} - ${DCMTK_DIR}/include/${dir} - ${SOURCE_DIR_PATH} - ) - mark_as_advanced(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} - ${_include}) - endif() -endforeach() - -list(APPEND DCMTK_INCLUDE_DIRS ${DCMTK_DIR}/include) - -if(WIN32) - list(APPEND DCMTK_LIBRARIES netapi32 wsock32) -endif() - -if(DCMTK_ofstd_INCLUDE_DIR) - get_filename_component(DCMTK_dcmtk_INCLUDE_DIR - ${DCMTK_ofstd_INCLUDE_DIR} - PATH - CACHE) - list(APPEND DCMTK_INCLUDE_DIRS ${DCMTK_dcmtk_INCLUDE_DIR}) - mark_as_advanced(DCMTK_dcmtk_INCLUDE_DIR) -endif() - -# Compatibility: This variable is deprecated -set(DCMTK_INCLUDE_DIR ${DCMTK_INCLUDE_DIRS}) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(DCMTK - REQUIRED_VARS ${DCMTK_INCLUDE_DIR_NAMES} DCMTK_LIBRARIES - FAIL_MESSAGE "Please set DCMTK_DIR and re-run configure") - -# Workaround bug in packaging of DCMTK 3.6.0 on Debian. -# See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637687 -if(DCMTK_FOUND AND UNIX AND NOT APPLE) - include(CheckCXXSourceCompiles) - set(CMAKE_REQUIRED_FLAGS ) - set(CMAKE_REQUIRED_DEFINITIONS ) - set(CMAKE_REQUIRED_INCLUDES ${DCMTK_INCLUDE_DIRS}) - set(CMAKE_REQUIRED_LIBRARIES ${DCMTK_LIBRARIES}) - set(CMAKE_REQUIRED_QUIET ${DCMTK_FIND_QUIETLY}) - check_cxx_source_compiles("#include \n#include \nint main(int,char*[]){return 0;}" - DCMTK_HAVE_CONFIG_H_OPTIONAL - ) - if(NOT DCMTK_HAVE_CONFIG_H_OPTIONAL) - set(DCMTK_DEFINITIONS "HAVE_CONFIG_H") - endif() -endif() - -if(NOT DCMTK_FIND_QUIETLY) - message(STATUS "Trying to find DCMTK relying on FindDCMTK.cmake - ok") -endif()