Project

General

Profile

Feature #416 » 0001-COMP-Add-CMAKE-code-to-generate-comprehensive-DCMTKC.patch

Michael Onken, 2013-02-24 14:43

View differences:

CMake/3rdparty.cmake
IF(WIN32)
if(WIN32)
# For Windows, we don't used FIND_PACKAGE because DCMTK usually is used with its
# own set of 3rd-party support libraries that can be downloaded from DCMTK's
# website (pre-built).
# libxml support: find out whether user has library
GET_FILENAME_COMPONENT(LIBXML_DIR "${DCMTK_SOURCE_DIR}/../libxml2-2.7.7" ABSOLUTE)
FIND_PATH(WITH_LIBXMLINC "/include/libxml/parser.h" "${LIBXML_DIR}"/ NO_DEFAULT_PATH)
get_filename_component(LIBXML_DIR "${DCMTK_SOURCE_DIR}/../libxml2-2.7.7" ABSOLUTE)
find_path(WITH_LIBXMLINC "/include/libxml/parser.h" "${LIBXML_DIR}"/ NO_DEFAULT_PATH)
# libpng support: find out whether user has library
GET_FILENAME_COMPONENT(LIBPNG_DIR "${DCMTK_SOURCE_DIR}/../libpng-1.4.2" ABSOLUTE)
FIND_PATH(WITH_LIBPNGINC "include/png.h" "${LIBPNG_DIR}" NO_DEFAULT_PATH)
get_filename_component(LIBPNG_DIR "${DCMTK_SOURCE_DIR}/../libpng-1.4.2" ABSOLUTE)
find_path(WITH_LIBPNGINC "include/png.h" "${LIBPNG_DIR}" NO_DEFAULT_PATH)
# libtiff support: find out whether user has library
GET_FILENAME_COMPONENT(LIBTIFF_DIR "${DCMTK_SOURCE_DIR}/../tiff-3.9.2" ABSOLUTE)
FIND_PATH(WITH_LIBTIFFINC "include/tiff.h" "${LIBTIFF_DIR}" NO_DEFAULT_PATH)
get_filename_component(LIBTIFF_DIR "${DCMTK_SOURCE_DIR}/../tiff-3.9.2" ABSOLUTE)
find_path(WITH_LIBTIFFINC "include/tiff.h" "${LIBTIFF_DIR}" NO_DEFAULT_PATH)
# OpenSSL support: find out whether user has library
GET_FILENAME_COMPONENT(OPENSSL_DIR "${DCMTK_SOURCE_DIR}/../openssl-1.0.0" ABSOLUTE)
FIND_PATH(WITH_OPENSSLINC "include/openssl/ssl.h" "${OPENSSL_DIR}" NO_DEFAULT_PATH)
get_filename_component(OPENSSL_DIR "${DCMTK_SOURCE_DIR}/../openssl-1.0.0" ABSOLUTE)
find_path(WITH_OPENSSLINC "include/openssl/ssl.h" "${OPENSSL_DIR}" NO_DEFAULT_PATH)
# zlib support: find out whether user has library
GET_FILENAME_COMPONENT(ZLIB_DIR "${DCMTK_SOURCE_DIR}/../zlib-1.2.5" ABSOLUTE)
FIND_PATH(WITH_ZLIBINC "include/zlib.h" "${ZLIB_DIR}" NO_DEFAULT_PATH)
get_filename_component(ZLIB_DIR "${DCMTK_SOURCE_DIR}/../zlib-1.2.5" ABSOLUTE)
find_path(WITH_ZLIBINC "include/zlib.h" "${ZLIB_DIR}" NO_DEFAULT_PATH)
# sndfile support: find out whether user has library. Needed for module dcmwave (not in public DCMTK yet, marked as advanced)
GET_FILENAME_COMPONENT(SNDFILE_DIR "${DCMTK_SOURCE_DIR}/../libsndfile-1.0.17" ABSOLUTE)
FIND_PATH(WITH_SNDFILEINC "sndfile.h" "${SNDFILE_DIR}" NO_DEFAULT_PATH)
get_filename_component(SNDFILE_DIR "${DCMTK_SOURCE_DIR}/../libsndfile-1.0.17" ABSOLUTE)
find_path(WITH_SNDFILEINC "sndfile.h" "${SNDFILE_DIR}" NO_DEFAULT_PATH)
MARK_AS_ADVANCED(SNDFILE_DIR WITH_SNDFILEINC)
# libiconv support: find out whether user has library
GET_FILENAME_COMPONENT(LIBICONV_DIR "${DCMTK_SOURCE_DIR}/../libiconv-1.14" ABSOLUTE)
FIND_PATH(WITH_LIBICONVINC "include/iconv.h" "${LIBICONV_DIR}" NO_DEFAULT_PATH)
get_filename_component(LIBICONV_DIR "${DCMTK_SOURCE_DIR}/../libiconv-1.14" ABSOLUTE)
find_path(WITH_LIBICONVINC "include/iconv.h" "${LIBICONV_DIR}" NO_DEFAULT_PATH)
# libxml support: configure compiler
IF(DCMTK_WITH_XML)
IF(WITH_LIBXMLINC)
SET(LIBXML_INCDIR ${WITH_LIBXMLINC}/include)
SET(LIBXML_LIBDIR ${WITH_LIBXMLINC}/lib)
SET(LIBXML_LIBS debug ${LIBXML_LIBDIR}/libxml2_d.lib optimized ${LIBXML_LIBDIR}/libxml2_o.lib debug ${LIBXML_LIBDIR}/iconv_d.lib optimized ${LIBXML_LIBDIR}/iconv_o.lib)
MESSAGE(STATUS "Info: DCMTK XML support will be enabled")
SET(WITH_LIBXML 1)
ELSE(WITH_LIBXMLINC) # turn off library if library path not set
MESSAGE(STATUS "Warning: XML support will be disabled because libxml2 directory is not specified. Correct path and re-enable DCMTK_WITH_XML.")
SET(DCMTK_WITH_XML OFF CACHE BOOL "" FORCE)
SET(WITH_LIBXML "")
ENDIF(WITH_LIBXMLINC)
ENDIF(DCMTK_WITH_XML)
if(DCMTK_WITH_XML)
if(WITH_LIBXMLINC)
set(LIBXML_INCDIR ${WITH_LIBXMLINC}/include)
set(LIBXML_LIBDIR ${WITH_LIBXMLINC}/lib)
set(LIBXML_LIBS debug ${LIBXML_LIBDIR}/libxml2_d.lib optimized ${LIBXML_LIBDIR}/libxml2_o.lib debug ${LIBXML_LIBDIR}/iconv_d.lib optimized ${LIBXML_LIBDIR}/iconv_o.lib)
message(STATUS "Info: DCMTK XML support will be enabled")
set(WITH_LIBXML 1)
else() # turn off library if library path not set
message(STATUS "Warning: XML support will be disabled because libxml2 directory is not specified. Correct path and re-enable DCMTK_WITH_XML.")
set(DCMTK_WITH_XML OFF CACHE BOOL "" FORCE)
set(WITH_LIBXML "")
endif()
endif()
# libpng support: configure compiler
IF(DCMTK_WITH_PNG)
IF(WITH_LIBPNGINC)
SET(LIBPNG_INCDIR ${WITH_LIBPNGINC}/include)
SET(LIBPNG_LIBDIR ${WITH_LIBPNGINC}/lib)
SET(LIBPNG_LIBS debug ${LIBPNG_LIBDIR}/libpng_d.lib optimized ${LIBPNG_LIBDIR}/libpng_o.lib)
MESSAGE(STATUS "Info: DCMTK PNG support will be enabled")
SET(WITH_LIBPNG 1)
ELSE(WITH_LIBPNGINC) # turn off library if library path not set
MESSAGE(STATUS "Warning: PNG support will be disabled because libpng directory was not specified. Correct path and re-enable DCMTK_WITH_PNG.")
SET(DCMTK_WITH_PNG OFF CACHE BOOL "" FORCE)
SET(WITH_LIBPNG "")
ENDIF(WITH_LIBPNGINC)
ENDIF(DCMTK_WITH_PNG)
if(DCMTK_WITH_PNG)
if(WITH_LIBPNGINC)
set(LIBPNG_INCDIR ${WITH_LIBPNGINC}/include)
set(LIBPNG_LIBDIR ${WITH_LIBPNGINC}/lib)
set(LIBPNG_LIBS debug ${LIBPNG_LIBDIR}/libpng_d.lib optimized ${LIBPNG_LIBDIR}/libpng_o.lib)
message(STATUS "Info: DCMTK PNG support will be enabled")
set(WITH_LIBPNG 1)
else() # turn off library if library path not set
message(STATUS "Warning: PNG support will be disabled because libpng directory was not specified. Correct path and re-enable DCMTK_WITH_PNG.")
set(DCMTK_WITH_PNG OFF CACHE BOOL "" FORCE)
set(WITH_LIBPNG "")
endif()
endif()
# libtiff support: configure compiler
IF(DCMTK_WITH_TIFF)
IF(WITH_LIBTIFFINC)
SET(LIBTIFF_INCDIR ${WITH_LIBTIFFINC}/include)
SET(LIBTIFF_LIBDIR ${WITH_LIBTIFFINC}/lib)
SET(LIBTIFF_LIBS debug ${LIBTIFF_LIBDIR}/libtiff_d.lib optimized ${LIBTIFF_LIBDIR}/libtiff_o.lib)
MESSAGE(STATUS "Info: DCMTK TIFF support will be enabled")
SET(WITH_LIBTIFF 1)
ELSE(WITH_LIBTIFFINC) # turn off library if library path not set
MESSAGE(STATUS "Warning: TIFF support will be disabled because libtiff directory was not specified. Correct path and re-enable DCMTK_WITH_TIFF.")
SET(DCMTK_WITH_TIFF OFF CACHE BOOL "" FORCE)
SET(WITH_LIBTIFF "")
ENDIF(WITH_LIBTIFFINC)
ENDIF(DCMTK_WITH_TIFF)
if(DCMTK_WITH_TIFF)
if(WITH_LIBTIFFINC)
set(LIBTIFF_INCDIR ${WITH_LIBTIFFINC}/include)
set(LIBTIFF_LIBDIR ${WITH_LIBTIFFINC}/lib)
set(LIBTIFF_LIBS debug ${LIBTIFF_LIBDIR}/libtiff_d.lib optimized ${LIBTIFF_LIBDIR}/libtiff_o.lib)
message(STATUS "Info: DCMTK TIFF support will be enabled")
set(WITH_LIBTIFF 1)
else() # turn off library if library path not set
message(STATUS "Warning: TIFF support will be disabled because libtiff directory was not specified. Correct path and re-enable DCMTK_WITH_TIFF.")
set(DCMTK_WITH_TIFF OFF CACHE BOOL "" FORCE)
set(WITH_LIBTIFF "")
endif()
endif()
# OpenSSL support: configure compiler
IF(DCMTK_WITH_OPENSSL)
IF(WITH_OPENSSLINC)
SET(OPENSSL_BINDIR ${WITH_OPENSSLINC}/bin)
SET(OPENSSL_INCDIR ${WITH_OPENSSLINC}/include)
SET(OPENSSL_LIBDIR ${WITH_OPENSSLINC}/lib)
SET(OPENSSL_LIBS debug ${OPENSSL_LIBDIR}/dcmtkssl_d.lib optimized ${OPENSSL_LIBDIR}/dcmtkssl_o.lib debug ${OPENSSL_LIBDIR}/dcmtkeay_d.lib optimized ${OPENSSL_LIBDIR}/dcmtkeay_o.lib)
MESSAGE(STATUS "Info: DCMTK OPENSSL support will be enabled")
SET(WITH_OPENSSL 1)
ELSE(WITH_OPENSSLINC) # turn off library if library path not set
MESSAGE(STATUS "Warning: OPENSSL support will be disabled because openssl directory was not specified. Correct path and re-enable DCMTK_WITH_OPENSSL.")
SET(DCMTK_WITH_OPENSSL OFF CACHE BOOL "" FORCE)
SET(WITH_OPENSSL "")
ENDIF(WITH_OPENSSLINC)
ENDIF(DCMTK_WITH_OPENSSL)
if(DCMTK_WITH_OPENSSL)
if(WITH_OPENSSLINC)
set(OPENSSL_BINDIR ${WITH_OPENSSLINC}/bin)
set(OPENSSL_INCDIR ${WITH_OPENSSLINC}/include)
set(OPENSSL_LIBDIR ${WITH_OPENSSLINC}/lib)
set(OPENSSL_LIBS debug ${OPENSSL_LIBDIR}/dcmtkssl_d.lib optimized ${OPENSSL_LIBDIR}/dcmtkssl_o.lib debug ${OPENSSL_LIBDIR}/dcmtkeay_d.lib optimized ${OPENSSL_LIBDIR}/dcmtkeay_o.lib)
message(STATUS "Info: DCMTK OPENSSL support will be enabled")
set(WITH_OPENSSL 1)
else() # turn off library if library path not set
message(STATUS "Warning: OPENSSL support will be disabled because openssl directory was not specified. Correct path and re-enable DCMTK_WITH_OPENSSL.")
set(DCMTK_WITH_OPENSSL OFF CACHE BOOL "" FORCE)
set(WITH_OPENSSL "")
endif()
endif()
# zlib support: configure compiler
IF(DCMTK_WITH_ZLIB)
IF(WITH_ZLIBINC)
SET(ZLIB_INCDIR ${WITH_ZLIBINC}/include)
SET(ZLIB_LIBDIR ${WITH_ZLIBINC}/lib)
SET(ZLIB_LIBS debug ${ZLIB_LIBDIR}/zlib_d.lib optimized ${ZLIB_LIBDIR}/zlib_o.lib)
MESSAGE(STATUS "Info: DCMTK ZLIB support will be enabled")
SET(WITH_ZLIB 1)
ELSE(WITH_ZLIBINC) # turn off library if library path not set
MESSAGE(STATUS "Warning: ZLIB support will be disabled because zlib directory was not specified. Correct path and re-enable DCMTK_WITH_ZLIB.")
SET(DCMTK_WITH_ZLIB OFF CACHE BOOL "" FORCE)
SET(WITH_ZLIB "")
ENDIF(WITH_ZLIBINC)
ENDIF(DCMTK_WITH_ZLIB)
if(DCMTK_WITH_ZLIB)
if(WITH_ZLIBINC)
set(ZLIB_INCDIR ${WITH_ZLIBINC}/include)
set(ZLIB_LIBDIR ${WITH_ZLIBINC}/lib)
set(ZLIB_LIBS debug ${ZLIB_LIBDIR}/zlib_d.lib optimized ${ZLIB_LIBDIR}/zlib_o.lib)
message(STATUS "Info: DCMTK ZLIB support will be enabled")
set(WITH_ZLIB 1)
else() # turn off library if library path not set
message(STATUS "Warning: ZLIB support will be disabled because zlib directory was not specified. Correct path and re-enable DCMTK_WITH_ZLIB.")
set(DCMTK_WITH_ZLIB OFF CACHE BOOL "" FORCE)
set(WITH_ZLIB "")
endif()
endif()
# sndfile support: configure compiler
IF(DCMTK_WITH_SNDFILE)
IF(WITH_SNDFILEINC)
SET(SNDFILE_INCDIR ${WITH_SNDFILEINC}/include)
SET(SNDFILE_LIBDIR ${WITH_SNDFILEINC}/lib)
SET(SNDFILE_LIBS debug ${SNDFILE_LIBDIR}/libsndfile_d.lib optimized ${SNDFILE_LIBDIR}/libsndfile_o.lib)
MESSAGE(STATUS "Info: DCMTK SNDFILE support will be enabled")
SET(WITH_SNDFILE 1)
ELSE(WITH_SNDFILEINC) # turn off library if library path not set
MESSAGE(STATUS "Warning: SNDFILE support will be disabled because libsndfile directory was not specified. Correct path and re-enable DCMTK_WITH_SNDFILE.")
SET(DCMTK_WITH_SNDFILE OFF CACHE BOOL "" FORCE)
SET(WITH_SNDFILE "")
ENDIF(WITH_SNDFILEINC)
ENDIF(DCMTK_WITH_SNDFILE)
if(DCMTK_WITH_SNDFILE)
if(WITH_SNDFILEINC)
set(SNDFILE_INCDIR ${WITH_SNDFILEINC}/include)
set(SNDFILE_LIBDIR ${WITH_SNDFILEINC}/lib)
set(SNDFILE_LIBS debug ${SNDFILE_LIBDIR}/libsndfile_d.lib optimized ${SNDFILE_LIBDIR}/libsndfile_o.lib)
message(STATUS "Info: DCMTK SNDFILE support will be enabled")
set(WITH_SNDFILE 1)
else() # turn off library if library path not set
message(STATUS "Warning: SNDFILE support will be disabled because libsndfile directory was not specified. Correct path and re-enable DCMTK_WITH_SNDFILE.")
set(DCMTK_WITH_SNDFILE OFF CACHE BOOL "" FORCE)
set(WITH_SNDFILE "")
endif()
endif()
# libiconv support: configure compiler
IF(DCMTK_WITH_ICONV)
IF(WITH_LIBICONVINC)
SET(LIBICONV_INCDIR ${WITH_LIBICONVINC}/include)
SET(LIBICONV_LIBDIR ${WITH_LIBICONVINC}/lib)
SET(LIBICONV_LIBS debug ${LIBICONV_LIBDIR}/libiconv_d.lib optimized ${LIBICONV_LIBDIR}/libiconv_o.lib)
MESSAGE(STATUS "Info: DCMTK ICONV support will be enabled")
SET(WITH_LIBICONV 1)
ELSE(WITH_LIBICONVINC) # turn off library if library path not set
MESSAGE(STATUS "Warning: ICONV support will be disabled because libiconv directory was not specified. Correct path and re-enable DCMTK_WITH_ICONV.")
SET(DCMTK_WITH_ICONV OFF CACHE BOOL "" FORCE)
SET(WITH_LIBICONV "")
ENDIF(WITH_LIBICONVINC)
ENDIF(DCMTK_WITH_ICONV)
if(DCMTK_WITH_ICONV)
if(WITH_LIBICONVINC)
set(LIBICONV_INCDIR ${WITH_LIBICONVINC}/include)
set(LIBICONV_LIBDIR ${WITH_LIBICONVINC}/lib)
set(LIBICONV_LIBS debug ${LIBICONV_LIBDIR}/libiconv_d.lib optimized ${LIBICONV_LIBDIR}/libiconv_o.lib)
message(STATUS "Info: DCMTK ICONV support will be enabled")
set(WITH_LIBICONV 1)
else() # turn off library if library path not set
message(STATUS "Warning: ICONV support will be disabled because libiconv directory was not specified. Correct path and re-enable DCMTK_WITH_ICONV.")
set(DCMTK_WITH_ICONV OFF CACHE BOOL "" FORCE)
set(WITH_LIBICONV "")
endif()
endif()
ELSE(WIN32)
else()
# Find TIFF
IF(DCMTK_WITH_TIFF)
FIND_PACKAGE(TIFF)
INCLUDE_DIRECTORIES(${TIFF_INCLUDE_DIR})
SET(LIBTIFF_LIBS ${TIFF_LIBRARY})
if(DCMTK_WITH_TIFF)
find_package(TIFF)
message("TIFF_FOUND=${TIFF_FOUND} TIFF_LIBRARY=${TIFF_LIBRARY}")
find_package(JPEG)
message("JPEG_FOUND=${JPEG_FOUND} JPEG_LIBRARY=${JPEG_LIBRARY}")
# turn off library if it could not be found
IF(NOT LIBTIFF_LIBS)
MESSAGE(STATUS "Warning: TIFF support will be disabled because libtiff was not found.")
SET(DCMTK_WITH_TIFF OFF CACHE BOOL "" FORCE)
SET(WITH_LIBTIFF "")
ELSE(NOT LIBTIFF_LIBS)
MESSAGE(STATUS "Info: DCMTK TIFF support will be enabled")
SET(WITH_LIBTIFF 1)
ENDIF(NOT LIBTIFF_LIBS)
ENDIF(DCMTK_WITH_TIFF)
if(NOT TIFF_FOUND OR NOT JPEG_FOUND)
if(NOT TIFF_FOUND)
message(STATUS "Warning: TIFF support will be disabled because libtiff was not found.")
else()
message(STATUS "Warning: TIFF support will be disabled because libjpeg was not found.")
endif()
set(DCMTK_WITH_TIFF OFF CACHE BOOL "" FORCE)
set(WITH_LIBTIFF "")
else()
message(STATUS "Info: DCMTK TIFF support will be enabled")
set(WITH_LIBTIFF 1)
include_directories(${TIFF_INCLUDE_DIR})
set(LIBTIFF_LIBS ${TIFF_LIBRARY} ${JPEG_LIBRARY})
endif()
endif()
# Find PNG
IF(DCMTK_WITH_PNG)
FIND_PACKAGE(PNG)
INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR})
SET(LIBPNG_LIBS ${PNG_LIBRARY})
IF(NOT LIBPNG_LIBS)
SET(DCMTK_WITH_PNG OFF CACHE BOOL "" FORCE)
MESSAGE(STATUS "Warning: PNG support will be disabled because libpng was not found.")
SET(WITH_LIBPNG "")
ELSE(NOT LIBPNG_LIBS)
MESSAGE(STATUS "Info: DCMTK PNG support will be enabled")
SET(WITH_LIBPNG 1)
ENDIF(NOT LIBPNG_LIBS)
ENDIF(DCMTK_WITH_PNG)
if(DCMTK_WITH_PNG)
find_package(PNG QUIET)
if(NOT PNG_FOUND)
set(DCMTK_WITH_PNG OFF CACHE BOOL "" FORCE)
message(STATUS "Warning: PNG support will be disabled because libpng was not found.")
set(WITH_LIBPNG "")
else()
message(STATUS "Info: DCMTK PNG support will be enabled")
set(WITH_LIBPNG 1)
include_directories(${PNG_INCLUDE_DIR})
set(LIBPNG_LIBS ${PNG_LIBRARY})
endif()
endif()
# Find OpenSSL
IF(DCMTK_WITH_OPENSSL)
FIND_PACKAGE(OpenSSL)
INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})
SET(OPENSSL_LIBS ${OPENSSL_LIBRARIES})
IF(NOT OPENSSL_LIBS)
MESSAGE(STATUS "Warning: OPENSSL support will be disabled because openssl was not found.")
SET(WITH_OPENSSL "")
SET(DCMTK_WITH_OPENSSL OFF CACHE BOOL "" FORCE)
ELSE(NOT OPENSSL_LIBS)
MESSAGE(STATUS "Info: DCMTK OPENSSL support will be enabled")
SET(WITH_OPENSSL 1)
ENDIF(NOT OPENSSL_LIBS)
ENDIF(DCMTK_WITH_OPENSSL)
if(DCMTK_WITH_OPENSSL)
find_package(OpenSSL QUIET)
if(NOT OPENSSL_FOUND)
message(STATUS "Warning: OPENSSL support will be disabled because openssl was not found.")
set(WITH_OPENSSL "")
set(DCMTK_WITH_OPENSSL OFF CACHE BOOL "" FORCE)
else()
message(STATUS "Info: DCMTK OPENSSL support will be enabled")
set(WITH_OPENSSL 1)
include_directories(${OPENSSL_INCLUDE_DIR})
set(OPENSSL_LIBS ${OPENSSL_LIBRARIES})
endif()
endif()
# Find libXML2
IF(DCMTK_WITH_XML)
FIND_PACKAGE(LibXml2)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
SET(LIBXML_LIBS ${LIBXML2_LIBRARIES})
IF(NOT LIBXML_LIBS)
MESSAGE(STATUS "Warning: XML support will be disabled because libxml2 was not found.")
SET(WITH_LIBXML "")
SET(DCMTK_WITH_XML OFF CACHE BOOL "" FORCE)
ELSE(NOT LIBXML_LIBS)
MESSAGE(STATUS "Info: DCMTK XML support will be enabled")
SET(WITH_LIBXML 1)
ENDIF(NOT LIBXML_LIBS)
ENDIF(DCMTK_WITH_XML)
if(DCMTK_WITH_XML)
find_package(LibXml2 QUIET)
if(NOT LIBXML2_FOUND)
message(STATUS "Warning: XML support will be disabled because libxml2 was not found.")
set(WITH_LIBXML "")
set(DCMTK_WITH_XML OFF CACHE BOOL "" FORCE)
else()
message(STATUS "Info: DCMTK XML support will be enabled")
set(WITH_LIBXML 1)
include_directories(${LIBXML2_INCLUDE_DIR})
set(LIBXML_LIBS ${LIBXML2_LIBRARIES})
endif()
endif()
# Find zlib
IF(DCMTK_WITH_ZLIB)
FIND_PACKAGE(ZLIB)
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIRS})
SET(ZLIB_LIBS ${ZLIB_LIBRARIES})
IF(NOT ZLIB_LIBS)
MESSAGE(STATUS "Warning: ZLIB support will be disabled because zlib was not found.")
SET(WITH_ZLIB "")
SET(DCMTK_WITH_ZLIB OFF CACHE BOOL "" FORCE)
ELSE(NOT ZLIB_LIBS)
MESSAGE(STATUS "Info: DCMTK ZLIB support will be enabled")
SET(WITH_ZLIB 1)
ENDIF(NOT ZLIB_LIBS)
ENDIF(DCMTK_WITH_ZLIB)
if(DCMTK_WITH_ZLIB)
find_package(ZLIB QUIET)
if(NOT ZLIB_FOUND)
message(STATUS "Warning: ZLIB support will be disabled because zlib was not found.")
set(WITH_ZLIB "")
set(DCMTK_WITH_ZLIB OFF CACHE BOOL "" FORCE)
else()
message(STATUS "Info: DCMTK ZLIB support will be enabled")
set(WITH_ZLIB 1)
include_directories(${ZLIB_INCLUDE_DIRS})
set(ZLIB_LIBS ${ZLIB_LIBRARIES})
endif()
endif()
# Find libsndfile
IF(DCMTK_WITH_SNDFILE)
FIND_PACKAGE(Sndfile)
INCLUDE_DIRECTORIES(${SNDFILE_INCLUDE_DIRS})
SET(SNDFILE_LIBS ${SNDFILE_LIBRARIES})
IF(NOT SNDFILE_LIBS)
MESSAGE(STATUS "Warning: SNDFILE support will be disabled because libsndfile was not found.")
SET(WITH_SNDFILE "")
SET(DCMTK_WITH_SNDFILE OFF CACHE BOOL "" FORCE)
ELSE(NOT SNDFILE_LIBS)
MESSAGE(STATUS "Info: DCMTK SNDFILE support will be enabled")
SET(WITH_SNDFILE 1)
ENDIF(NOT SNDFILE_LIBS)
ENDIF(DCMTK_WITH_SNDFILE)
if(DCMTK_WITH_SNDFILE)
find_package(Sndfile QUIET)
if(NOT SNDFILE_LIBS)
message(STATUS "Warning: SNDFILE support will be disabled because libsndfile was not found.")
set(WITH_SNDFILE "")
set(DCMTK_WITH_SNDFILE OFF CACHE BOOL "" FORCE)
else()
message(STATUS "Info: DCMTK SNDFILE support will be enabled")
set(WITH_SNDFILE 1)
include_directories(${SNDFILE_INCLUDE_DIRS})
set(SNDFILE_LIBS ${SNDFILE_LIBRARIES})
endif()
endif()
# Find libiconv
IF(DCMTK_WITH_ICONV)
FIND_PACKAGE(ICONV)
FIND_PACKAGE(Charset)
IF(LIBICONV_FOUND AND LIBCHARSET_FOUND)
MESSAGE(STATUS "Info: DCMTK ICONV support will be enabled")
SET(WITH_LIBICONV 1)
SET(LIBICONV_INCDIR ${LIBICONV_INCLUDE_DIRS} ${LIBCHARSET_INCLUDE_DIRS})
SET(LIBICONV_LIBDIR ${LIBICONV_LIBDIR})
SET(LIBICONV_LIBS ${LIBICONV_LIBRARIES} ${LIBCHARSET_LIBRARY})
INCLUDE_DIRECTORIES(${LIBICONV_INCDIR})
ELSE(LIBICONV_FOUND AND LIBCHARSET_FOUND)
MESSAGE(STATUS "Warning: ICONV support will be disabled because libiconv was not found. Correct LIBICONV_LIBDIR and LIBICONV_INCLUDE_DIR and re-enable DCMTK_WITH_ICONV.")
SET(DCMTK_WITH_ICONV OFF CACHE BOOL "" FORCE)
SET(WITH_LIBICONV "")
ENDIF(LIBICONV_FOUND AND LIBCHARSET_FOUND)
ENDIF(DCMTK_WITH_ICONV)
if(DCMTK_WITH_ICONV)
find_package(ICONV QUIET)
find_package(Charset QUIET)
if(NOT LIBICONV_FOUND OR NOT LIBCHARSET_FOUND)
message(STATUS "Warning: ICONV support will be disabled because libiconv was not found. Correct LIBICONV_LIBDIR and LIBICONV_INCLUDE_DIR and re-enable DCMTK_WITH_ICONV.")
set(DCMTK_WITH_ICONV OFF CACHE BOOL "" FORCE)
set(WITH_LIBICONV "")
else()
message(STATUS "Info: DCMTK ICONV support will be enabled")
set(WITH_LIBICONV 1)
set(LIBICONV_INCDIR ${LIBICONV_INCLUDE_DIRS} ${LIBCHARSET_INCLUDE_DIRS})
set(LIBICONV_LIBDIR ${LIBICONV_LIBDIR})
set(LIBICONV_LIBS ${LIBICONV_LIBRARIES} ${LIBCHARSET_LIBRARY})
include_directories(${LIBICONV_INCDIR})
endif()
endif()
# Find libwrap
IF(DCMTK_WITH_WRAP)
FIND_PACKAGE(Wrap)
INCLUDE_DIRECTORIES(${WRAP_INCLUDE_DIRS})
SET(WRAP_LIBS ${WRAP_LIBRARIES})
IF(NOT WRAP_LIBS)
MESSAGE(STATUS "Warning: WRAP support will be disabled because libwrap was not found.")
SET(WITH_TCPWRAPPER "")
SET(DCMTK_WITH_WRAP OFF CACHE BOOL "" FORCE)
ELSE(NOT WRAP_LIBS)
MESSAGE(STATUS "Info: DCMTK WRAP support will be enabled")
SET(WITH_TCPWRAPPER 1)
ENDIF(NOT WRAP_LIBS)
ENDIF(DCMTK_WITH_WRAP)
if(DCMTK_WITH_WRAP)
find_package(Wrap QUIET)
if(NOT WRAP_FOUND)
message(STATUS "Warning: WRAP support will be disabled because libwrap was not found.")
set(WITH_TCPWRAPPER "")
set(DCMTK_WITH_WRAP OFF CACHE BOOL "" FORCE)
else()
message(STATUS "Info: DCMTK WRAP support will be enabled")
set(WITH_TCPWRAPPER 1)
include_directories(${WRAP_INCLUDE_DIRS})
set(WRAP_LIBS ${WRAP_LIBRARIES})
endif()
endif()
ENDIF(WIN32)
endif()
# Find doxygen
IF(DCMTK_WITH_DOXYGEN)
FIND_PACKAGE(Doxygen) # will set variable DOXYGEN_EXECUTABLE
IF(NOT DOXYGEN_EXECUTABLE)
MESSAGE(STATUS "Warning: DOXYGEN support will be disabled because doxygen was not found.")
SET(DCMTK_WITH_DOXYGEN OFF CACHE BOOL "" FORCE)
ENDIF(NOT DOXYGEN_EXECUTABLE)
ENDIF(DCMTK_WITH_DOXYGEN)
if(DCMTK_WITH_DOXYGEN)
find_package(Doxygen) # will set variable DOXYGEN_EXECUTABLE
if(NOT DOXYGEN_FOUND)
message(STATUS "Warning: DOXYGEN support will be disabled because doxygen was not found.")
set(DCMTK_WITH_DOXYGEN OFF CACHE BOOL "" FORCE)
endif()
endif()
IF(DCMTK_WITH_ICONV)
INCLUDE(CheckCXXSourceCompiles)
SET(CMAKE_REQUIRED_INCLUDES ${LIBICONV_INCDIR})
SET(CMAKE_REQUIRED_LIBRARIES ${LIBICONV_LIBS})
if(DCMTK_WITH_ICONV)
include(CheckCXXSourceCompiles)
set(CMAKE_REQUIRED_INCLUDES ${LIBICONV_INCDIR})
set(CMAKE_REQUIRED_LIBRARIES ${LIBICONV_LIBS})
CHECK_CXX_SOURCE_COMPILES("
#include <iconv.h>
int main() {
......
iconv(cd, &in, 0, 0, 0);
return 0;
}" LIBICONV_SECOND_ARGUMENT_CONST)
SET(CMAKE_REQUIRED_INCLUDES)
SET(CMAKE_REQUIRED_LIBRARIES)
ENDIF(DCMTK_WITH_ICONV)
set(CMAKE_REQUIRED_INCLUDES)
set(CMAKE_REQUIRED_LIBRARIES)
endif()
CMake/DCMTKBuildTreeSettings.cmake.in
set(DCMTK_INCLUDE_DIRS
"@DCMTK_INCLUDE_DIR@")
CMake/DCMTKConfig.cmake.in
SET(DCMTK_OVERWRITE_WIN32_COMPILER_FLAGS @DCMTK_OVERWRITE_WIN32_COMPILER_FLAGS@)
SET(DCMTK_WIDE_CHAR_FILE_IO_FUNCTIONS @DCMTK_WIDE_CHAR_FILE_IO_FUNCTIONS@)
SET(DCMTK_WIDE_CHAR_MAIN_FUNCTION @DCMTK_WIDE_CHAR_MAIN_FUNCTION@)
get_filename_component(DCMTK_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
set(DCMTK_INCLUDE_DIR_LIST "@DCMTK_MODULES_W_INCLUDE@")
@DCMTKCONFIG_INCLUDE_DIR_CODE@
include("${DCMTK_CMAKE_DIR}/DCMTKLibraryDepends.cmake")
set(DCMTK_LIBRARIES charls
dcmimage
dcmjpls
dcmqrdb
dcmtls
ijg12
oflog
dcmdata
dcmimgle
dcmnet
dcmrt
dcmwlm
ijg16
ofstd
dcmdsig
dcmjpeg
dcmpstat
dcmsr
i2d
ijg8
)
CMake/DCMTKConfigVersion.cmake.in
set(PACKAGE_VERSION "@DCMTK_MAJOR_VERSION@.@DCMTK_MINOR_VERSION@.@DCMTK_BUILD_VERSION@")
# Check whether the requested PACKAGE_FIND_VERSION is compatible
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
set(PACKAGE_VERSION_COMPATIBLE TRUE)
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()
CMake/dcmtkMacros.cmake
IF(NOT BUILD_SINGLE_SHARED_LIBRARY)
# Declare installation files
INSTALL(TARGETS ${LIBRARY}${DCMTK_LIBRARY_SUFFIX}
COMPONENT lib
RUNTIME DESTINATION ${DCMTK_INSTALL_BINDIR}
LIBRARY DESTINATION ${DCMTK_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${DCMTK_INSTALL_LIBDIR})
EXPORT DCMTKLibraryDepends
RUNTIME DESTINATION ${INSTALL_BIN_DIR} COMPONENT bin
LIBRARY DESTINATION ${INSTALL_LIB_DIR}/lib COMPONENT shlib
ARCHIVE DESTINATION ${INSTALL_LIB_DIR}/lib COMPONENT lib)
ENDIF(NOT BUILD_SINGLE_SHARED_LIBRARY)
ENDMACRO(DCMTK_ADD_LIBRARY)
CMake/dcmtkPrepare.cmake
SET(CMAKE_BACKWARDS_COMPATIBILITY 2.8.10 CACHE STRING "Latest version of CMake when this project was released." FORCE)
ENDIF(CMAKE_BACKWARDS_COMPATIBILITY GREATER 2.8.10)
# make sure CMAKE_BUILD_TYPE has a value. default to release
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
message(STATUS "Setting build type to 'Release' as none was specified.")
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
# Set the possible values of build type for cmake-gui
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
endif()
# Basic version information
# (Starting with version 3.5.5, an odd number at the last position indicates
# a development snapshot and an even number indicates an official release.)
CMakeLists.txt
#-----------------------------------------------------------------------------
# Modules to be built
SET(DCMTK_MODULES config ofstd oflog dcmdata dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt doxygen
CACHE STRING "List of modules that should be built.")
MARK_AS_ADVANCED(DCMTK_MODULES)
SET(DCMTK_LIBS ofstd oflog dcmdata dcmimgle
dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr
dcmsign dcmwlm dcmqrdb dcmpstat dcmrt)
SET(DCMTK_MODULES config doxygen ofstd oflog dcmdata dcmimgle
dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr
dcmsign dcmwlm dcmqrdb dcmpstat dcmrt)
set(DCMTK_LIBRARIES ${DCMTK_LIBS} ijg8 ijg12 ijg16 charls dcmdsig)
#-----------------------------------------------------------------------------
# Include directories
#-----------------------------------------------------------------------------
SET(DCMTK_INCLUDE_DIR
${DCMTK_BINARY_DIR}/config/include
${DCMTK_SOURCE_DIR}/ofstd/include
${DCMTK_SOURCE_DIR}/oflog/include
${DCMTK_SOURCE_DIR}/dcmdata/include
${DCMTK_SOURCE_DIR}/dcmimgle/include
${DCMTK_SOURCE_DIR}/dcmimage/include
${DCMTK_SOURCE_DIR}/dcmjpeg/libijg8
${DCMTK_SOURCE_DIR}/dcmjpeg/libijg12
${DCMTK_SOURCE_DIR}/dcmjpeg/libijg16
${DCMTK_SOURCE_DIR}/dcmjpeg/include
${DCMTK_SOURCE_DIR}/dcmjpls/include
${DCMTK_SOURCE_DIR}/dcmnet/include
${DCMTK_SOURCE_DIR}/dcmpstat/include
${DCMTK_SOURCE_DIR}/dcmqrdb/include
${DCMTK_SOURCE_DIR}/dcmsign/include
${DCMTK_SOURCE_DIR}/dcmsr/include
${DCMTK_SOURCE_DIR}/dcmtls/include
${DCMTK_SOURCE_DIR}/dcmwlm/include
set(DCMTK_MODULES_W_INCLUDE
config
ofstd
oflog
dcmdata
dcmimgle
dcmimage
dcmjpeg
dcmjpeg
dcmjpeg
dcmjpeg
dcmjpls
dcmnet
dcmpstat
dcmqrdb
dcmsign
dcmsr
dcmtls
dcmwlm
)
SET(DCMTK_INCLUDE_DIR)
foreach(inc ${DCMTK_MODULES_W_INCLUDE})
if(inc STREQUAL config)
list(APPEND DCMTK_INCLUDE_DIR ${DCMTK_BINARY_DIR}/config/include)
else()
list(APPEND DCMTK_INCLUDE_DIR ${DCMTK_SOURCE_DIR}/${inc}/include)
endif()
endforeach()
INCLUDE_DIRECTORIES(${DCMTK_INCLUDE_DIR})
# set paths for install -- empty initially
# Offer the user the choice of overriding the installation directories
set(INSTALL_BIN_DIR CACHE PATH "Installation directory for libraries")
set(INSTALL_LIB_DIR CACHE PATH "Installation directory for libraries")
set(INSTALL_INCLUDE_DIR CACHE PATH "Installation directory for include")
# set suffix for CMake files used for packaging
if(WIN32 AND NOT CYGWIN)
set(INSTALL_CMAKE_DIR cmake)
else()
set(INSTALL_CMAKE_DIR lib/cmake/dcmtk)
endif()
# Make relative paths absolute (needed later)
foreach(p LIB BIN INCLUDE CMAKE)
set(var INSTALL_${p}_DIR)
if(NOT IS_ABSOLUTE "${${var}}")
set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}")
endif()
endforeach()
#-----------------------------------------------------------------------------
# Prepare osconfig.h
#-----------------------------------------------------------------------------
# add the osconfig.h.in file
CONFIGURE_FILE(${DCMTK_SOURCE_DIR}/CMake/osconfig.h.in
${DCMTK_BINARY_DIR}/config/include/dcmtk/config/osconfig.h)
#-----------------------------------------------------------------------------
# Write current configuration to file (for external projects)
#-----------------------------------------------------------------------------
CONFIGURE_FILE(${DCMTK_SOURCE_DIR}/CMake/DCMTKConfig.cmake.in
${DCMTK_BINARY_DIR}/DCMTKConfig.cmake @ONLY)
${DCMTK_BINARY_DIR}/config/include/dcmtk/config/osconfig.h)
#-----------------------------------------------------------------------------
# Start actual compilation tasks
......
INCLUDE(CMake/dcmtkAfterModules.cmake NO_POLICY_SCOPE)
#-----------------------------------------------------------------------------
# exports
#-----------------------------------------------------------------------------
if(BUILD_SINGLE_SHARED_LIBRARY)
set(EXPORT_LIBS dcmtk)
else()
set(EXPORT_LIBS ${DCMTK_LIBRARIES})
endif()
export(TARGETS ${EXPORT_LIBS}
FILE ${PROJECT_BINARY_DIR}/DCMTKLibraryDepends.cmake)
export(PACKAGE DCMTK)
#
# determine where include is relative to the CMake dir in
# in installed tree
file(RELATIVE_PATH CONF_REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}"
"${INSTALL_INCLUDE_DIR}")
#-----------------------------------------------------------------------------
# Write current configuration to file (for external projects)
#-----------------------------------------------------------------------------
set(DCMTKCONFIG_INCLUDE_DIR_CODE
"include(\"\${DCMTK_CMAKE_DIR}/DCMTKBuildTreeSettings.cmake\")")
configure_file(${DCMTK_SOURCE_DIR}/CMake/DCMTKConfig.cmake.in
${DCMTK_BINARY_DIR}/DCMTKConfig.cmake @ONLY)
set(DCMTKCONFIG_INCLUDE_DIR_CODE
"SET(DCMTK_INCLUDE_DIRS)
foreach(inc \${DCMTK_INCLUDE_DIR_LIST})
list(APPEND DCMTK_INCLUDE_DIRS \${DCMTK_CMAKE_DIR}/${CONF_REL_INCLUDE_DIR}include/dcmtk/\${inc})
endforeach()
list(APPEND DCMTK_INCLUDE_DIRS \${DCMTK_CMAKE_DIR}/${CONF_REL_INCLUDE_DIR}include)"
)
configure_file(${DCMTK_SOURCE_DIR}/CMake/DCMTKConfig.cmake.in
CMakeFiles/DCMTKConfig.cmake @ONLY)
#-----------------------------------------------------------------------------
# Export version # checked by find_package
#-----------------------------------------------------------------------------
configure_file(${DCMTK_SOURCE_DIR}/CMake/DCMTKConfigVersion.cmake.in
"${PROJECT_BINARY_DIR}/DCMTKConfigVersion.cmake"
@ONLY)
#
# make a cmake file -- in this case, all that needs defining
# is double-conversion_INCLUDE_DIRS
configure_file(${DCMTK_SOURCE_DIR}/CMake/DCMTKBuildTreeSettings.cmake.in
"${PROJECT_BINARY_DIR}/DCMTKBuildTreeSettings.cmake"
@ONLY)
#-----------------------------------------------------------------------------
# Installation tasks
#-----------------------------------------------------------------------------
......
COMPONENT doc)
# Install DCMTK's CMake configuration file
INSTALL(FILES ${DCMTK_BINARY_DIR}/DCMTKConfig.cmake
DESTINATION ${DCMTK_INSTALL_DATDIR}
COMPONENT data)
INSTALL(FILES ${DCMTK_BINARY_DIR}/CMakeFiles/DCMTKConfig.cmake
${DCMTK_BINARY_DIR}/DCMTKConfigVersion.cmake
DESTINATION ${INSTALL_CMAKE_DIR}
COMPONENT dev)
install(EXPORT DCMTKLibraryDepends DESTINATION
"${INSTALL_CMAKE_DIR}" COMPONENT dev)
(1-1/2)