diff --git a/Libs/Core/CMakeLists.txt b/Libs/Core/CMakeLists.txt index bc2c3da28c..1d9ba0dd26 100644 --- a/Libs/Core/CMakeLists.txt +++ b/Libs/Core/CMakeLists.txt @@ -105,6 +105,8 @@ SET(KIT_target_libraries) ctkFunctionGetTargetLibraries(KIT_target_libraries) +list(APPEND KIT_target_libraries "/usr/lib/libLog4Qt.so") + ctkMacroBuildLib( NAME ${PROJECT_NAME} EXPORT_DIRECTIVE ${KIT_export_directive} diff --git a/Libs/DICOM/Core/CMakeLists.txt b/Libs/DICOM/Core/CMakeLists.txt index 60f4843dd4..5b1e03f20b 100644 --- a/Libs/DICOM/Core/CMakeLists.txt +++ b/Libs/DICOM/Core/CMakeLists.txt @@ -57,6 +57,10 @@ set (DCMQRSCP_STORE_DIR ${CMAKE_CURRENT_BINARY_DIR}/Testing) CONFIGURE_FILE( Resources/dcmqrscp.cfg.in dcmqrscp.cfg ) set (DCMQRSCP_CONFIG ${CMAKE_CURRENT_BINARY_DIR}/dcmqrscp.cfg) +find_package(DCMTK REQUIRED) +list(APPEND KIT_target_libraries ${DCMTK_LIBRARIES}) +message("toto ${DCMTK_LIBRARIES}") + ctkMacroBuildLib( NAME ${PROJECT_NAME} EXPORT_DIRECTIVE ${KIT_export_directive} diff --git a/Libs/DICOM/Core/Testing/Cpp/CMakeLists.txt b/Libs/DICOM/Core/Testing/Cpp/CMakeLists.txt index 05444ce088..499cf805ff 100644 --- a/Libs/DICOM/Core/Testing/Cpp/CMakeLists.txt +++ b/Libs/DICOM/Core/Testing/Cpp/CMakeLists.txt @@ -23,6 +23,12 @@ SET(LIBRARY_NAME ${PROJECT_NAME}) ADD_EXECUTABLE(${KIT}CppTests ${Tests}) TARGET_LINK_LIBRARIES(${KIT}CppTests ${LIBRARY_NAME}) +# need libwrap: +# /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/libdcmnet.so: undefined reference to `hosts_access' +# /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/libdcmnet.so: undefined reference to `request_set' +# /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/libdcmnet.so: undefined reference to `request_init' + +TARGET_LINK_LIBRARIES(${KIT}CppTests -lxml2 -lssl -lcrypto -ldcmdsig -ltiff -ldcmnet -lwrap) SET( KIT_TESTS ${CPP_TEST_PATH}/${KIT}CppTests) diff --git a/Libs/DICOM/Core/Testing/Cpp/ctkDICOMImageTest1.cpp b/Libs/DICOM/Core/Testing/Cpp/ctkDICOMImageTest1.cpp index 9a050ae64b..2a4e184eed 100644 --- a/Libs/DICOM/Core/Testing/Cpp/ctkDICOMImageTest1.cpp +++ b/Libs/DICOM/Core/Testing/Cpp/ctkDICOMImageTest1.cpp @@ -8,7 +8,10 @@ #include "ctkDICOMImage.h" // DCMTK includes -#include +#ifndef WIN32 +#define HAVE_CONFIG_H +#endif +#include // STD includes #include diff --git a/Libs/DICOM/Core/ctkDICOMDatabase.cpp b/Libs/DICOM/Core/ctkDICOMDatabase.cpp index 913a863dc8..904e449c59 100644 --- a/Libs/DICOM/Core/ctkDICOMDatabase.cpp +++ b/Libs/DICOM/Core/ctkDICOMDatabase.cpp @@ -52,7 +52,7 @@ #include #include /* for class OFStandard */ #include /* for class DicomDirInterface */ -#include +#include //------------------------------------------------------------------------------ static ctkLogger logger("org.commontk.dicom.DICOMDatabase" ); @@ -266,16 +266,16 @@ void ctkDICOMDatabase::insert ( DcmDataset *dataset, bool storeFile, bool create Sint32 seriesNumber = 0, acquisitionNumber = 0, echoNumber = 0, temporalPosition = 0; //If the following fields can not be evaluated, cancel evaluation of the DICOM file - dataset->findAndGetOFString(DCM_PatientsName, patientsName); + dataset->findAndGetOFString(DCM_PatientName, patientsName); dataset->findAndGetOFString(DCM_StudyInstanceUID, studyInstanceUID); dataset->findAndGetOFString(DCM_SeriesInstanceUID, seriesInstanceUID); dataset->findAndGetOFString(DCM_PatientID, patientID); - dataset->findAndGetOFString(DCM_PatientsBirthDate, patientsBirthDate); - dataset->findAndGetOFString(DCM_PatientsBirthTime, patientsBirthTime); - dataset->findAndGetOFString(DCM_PatientsSex, patientsSex); - dataset->findAndGetOFString(DCM_PatientsAge, patientsAge); + dataset->findAndGetOFString(DCM_PatientBirthDate, patientsBirthDate); + dataset->findAndGetOFString(DCM_PatientBirthTime, patientsBirthTime); + dataset->findAndGetOFString(DCM_PatientSex, patientsSex); + dataset->findAndGetOFString(DCM_PatientAge, patientsAge); dataset->findAndGetOFString(DCM_PatientComments, patientComments); dataset->findAndGetOFString(DCM_StudyID, studyID); dataset->findAndGetOFString(DCM_StudyDate, studyDate); @@ -283,8 +283,8 @@ void ctkDICOMDatabase::insert ( DcmDataset *dataset, bool storeFile, bool create dataset->findAndGetOFString(DCM_AccessionNumber, accessionNumber); dataset->findAndGetOFString(DCM_ModalitiesInStudy, modalitiesInStudy); dataset->findAndGetOFString(DCM_InstitutionName, institutionName); - dataset->findAndGetOFString(DCM_PerformingPhysiciansName, performingPhysiciansName); - dataset->findAndGetOFString(DCM_ReferringPhysiciansName, referringPhysician); + dataset->findAndGetOFString(DCM_PerformingPhysicianName, performingPhysiciansName); + dataset->findAndGetOFString(DCM_ReferringPhysicianName, referringPhysician); dataset->findAndGetOFString(DCM_StudyDescription, studyDescription); dataset->findAndGetOFString(DCM_SeriesDate, seriesDate); diff --git a/Libs/DICOM/Core/ctkDICOMDataset.cpp b/Libs/DICOM/Core/ctkDICOMDataset.cpp index f09fff3075..085352c32d 100644 --- a/Libs/DICOM/Core/ctkDICOMDataset.cpp +++ b/Libs/DICOM/Core/ctkDICOMDataset.cpp @@ -1,9 +1,9 @@ #include "ctkDICOMDataset.h" -#include -#include -#include +#include +#include +#include #include diff --git a/Libs/DICOM/Core/ctkDICOMDataset.h b/Libs/DICOM/Core/ctkDICOMDataset.h index 1292305523..93cb21811e 100644 --- a/Libs/DICOM/Core/ctkDICOMDataset.h +++ b/Libs/DICOM/Core/ctkDICOMDataset.h @@ -28,7 +28,7 @@ #ifndef WIN32 #define HAVE_CONFIG_H #endif -#include // DCMTK DcmDataset +#include // DCMTK DcmDataset #include diff --git a/Libs/DICOM/Core/ctkDICOMImage.cpp b/Libs/DICOM/Core/ctkDICOMImage.cpp index bfba2d4919..df884343bf 100644 --- a/Libs/DICOM/Core/ctkDICOMImage.cpp +++ b/Libs/DICOM/Core/ctkDICOMImage.cpp @@ -28,8 +28,11 @@ #include "ctkLogger.h" // DCMTK includes -#include -#include +#ifndef WIN32 +#define HAVE_CONFIG_H +#endif +#include +#include static ctkLogger logger ( "org.commontk.dicom.DICOMImage" ); struct Node; diff --git a/Libs/DICOM/Core/ctkDICOMIndexer.cpp b/Libs/DICOM/Core/ctkDICOMIndexer.cpp index ab8f9abcf9..920f8f3388 100644 --- a/Libs/DICOM/Core/ctkDICOMIndexer.cpp +++ b/Libs/DICOM/Core/ctkDICOMIndexer.cpp @@ -49,7 +49,7 @@ #include #include /* for class OFStandard */ #include /* for class DicomDirInterface */ -#include "dcmimage.h" +#include #define MITK_ERROR std::cout #define MITK_INFO std::cout @@ -173,7 +173,7 @@ void ctkDICOMIndexer::addDirectory(ctkDICOMDatabase& database, const QString& di int patientUID = -1; //If the following fields can not be evaluated, cancel evaluation of the DICOM file - if (!dataset->findAndGetOFString(DCM_PatientsName, patientsName).good()) + if (!dataset->findAndGetOFString(DCM_PatientName, patientsName).good()) { MITK_ERROR << "Could not read DCM_PatientsName from " << filename; continue; @@ -205,10 +205,10 @@ void ctkDICOMIndexer::addDirectory(ctkDICOMDatabase& database, const QString& di dataset->findAndGetOFString(DCM_PatientID, patientID); - dataset->findAndGetOFString(DCM_PatientsBirthDate, patientsBirthDate); - dataset->findAndGetOFString(DCM_PatientsBirthTime, patientsBirthTime); - dataset->findAndGetOFString(DCM_PatientsSex, patientsSex); - dataset->findAndGetOFString(DCM_PatientsAge, patientsAge); + dataset->findAndGetOFString(DCM_PatientBirthDate, patientsBirthDate); + dataset->findAndGetOFString(DCM_PatientBirthTime, patientsBirthTime); + dataset->findAndGetOFString(DCM_PatientSex, patientsSex); + dataset->findAndGetOFString(DCM_PatientAge, patientsAge); dataset->findAndGetOFString(DCM_PatientComments, patientComments); dataset->findAndGetOFString(DCM_StudyID, studyID); dataset->findAndGetOFString(DCM_StudyDate, studyDate); @@ -216,8 +216,8 @@ void ctkDICOMIndexer::addDirectory(ctkDICOMDatabase& database, const QString& di dataset->findAndGetOFString(DCM_AccessionNumber, accessionNumber); dataset->findAndGetOFString(DCM_ModalitiesInStudy, modalitiesInStudy); dataset->findAndGetOFString(DCM_InstitutionName, institutionName); - dataset->findAndGetOFString(DCM_PerformingPhysiciansName, performingPhysiciansName); - dataset->findAndGetOFString(DCM_ReferringPhysiciansName, referringPhysician); + dataset->findAndGetOFString(DCM_PerformingPhysicianName, performingPhysiciansName); + dataset->findAndGetOFString(DCM_ReferringPhysicianName, referringPhysician); dataset->findAndGetOFString(DCM_StudyDescription, studyDescription); dataset->findAndGetOFString(DCM_SeriesDate, seriesDate); diff --git a/Libs/DICOM/Core/ctkDICOMQuery.cpp b/Libs/DICOM/Core/ctkDICOMQuery.cpp index 7765a96d10..ccecf2b516 100644 --- a/Libs/DICOM/Core/ctkDICOMQuery.cpp +++ b/Libs/DICOM/Core/ctkDICOMQuery.cpp @@ -247,8 +247,8 @@ bool ctkDICOMQuery::query(ctkDICOMDatabase& database ) d->Query->remove ( 0ul ); } d->Query->insertEmptyElement ( DCM_PatientID ); - d->Query->insertEmptyElement ( DCM_PatientsName ); - d->Query->insertEmptyElement ( DCM_PatientsBirthDate ); + d->Query->insertEmptyElement ( DCM_PatientName ); + d->Query->insertEmptyElement ( DCM_PatientBirthDate ); d->Query->insertEmptyElement ( DCM_StudyID ); d->Query->insertEmptyElement ( DCM_StudyInstanceUID ); d->Query->insertEmptyElement ( DCM_StudyDescription ); @@ -273,7 +273,7 @@ bool ctkDICOMQuery::query(ctkDICOMDatabase& database ) if ( key == QString("Name") ) { // make the filter a wildcard in dicom style - d->Query->putAndInsertString( DCM_PatientsName, + d->Query->putAndInsertString( DCM_PatientName, (QString("*") + d->Filters[key].toString() + QString("*")).toAscii().data()); } if ( key == QString("Study") ) @@ -349,7 +349,7 @@ bool ctkDICOMQuery::query(ctkDICOMDatabase& database ) { logger.error ( "Find failed" ); emit progress("Find failed"); - d->SCU.closeAssociation ( DUL_PEERREQUESTEDRELEASE ); + //d->SCU.closeAssociation ( DUL_PEERREQUESTEDRELEASE ); emit progress(100); return false; } @@ -404,7 +404,7 @@ bool ctkDICOMQuery::query(ctkDICOMDatabase& database ) emit progress(50 + (progressRatio * i++)); delete responses; } - d->SCU.closeAssociation ( DUL_PEERREQUESTEDRELEASE ); + //d->SCU.closeAssociation ( DUL_PEERREQUESTEDRELEASE ); emit progress(100); return true; } diff --git a/Libs/DICOM/Core/ctkDICOMRetrieve.cpp b/Libs/DICOM/Core/ctkDICOMRetrieve.cpp index 004c1cff15..1752b49829 100644 --- a/Libs/DICOM/Core/ctkDICOMRetrieve.cpp +++ b/Libs/DICOM/Core/ctkDICOMRetrieve.cpp @@ -129,11 +129,11 @@ bool ctkDICOMRetrievePrivate::retrieve ( QString UID, RetrieveType retriveType ) // TODO: use this->SCU instead ? DcmSCU scu; scu.setAETitle ( OFString(this->CallingAETitle.toStdString().c_str()) ); - scu.setPort ( this->CallingPort ); + scu.setPeerPort ( this->CallingPort ); scu.setPeerAETitle ( OFString(this->CalledAETitle.toStdString().c_str()) ); scu.setPeerHostName ( OFString(this->Host.toStdString().c_str()) ); scu.setPeerPort ( this->CalledPort ); - scu.setMoveDestinationAETitle ( OFString(this->MoveDestinationAETitle.toStdString().c_str()) ); + scu.setPeerAETitle( OFString(this->MoveDestinationAETitle.toStdString().c_str()) ); logger.info ( "Setting Transfer Syntaxes" ); OFList transferSyntaxes; @@ -175,6 +175,7 @@ bool ctkDICOMRetrievePrivate::retrieve ( QString UID, RetrieveType retriveType ) } logger.debug ( "Sending Move Request" ); +#if 0 MOVEResponses *responses = new MOVEResponses(); OFCondition status = scu.sendMOVERequest ( 0, this->parameters, responses ); if (!status.good()) @@ -237,6 +238,7 @@ bool ctkDICOMRetrievePrivate::retrieve ( QString UID, RetrieveType retriveType ) delete responses; +#endif return true; } diff --git a/Libs/DICOM/Widgets/Testing/Cpp/CMakeLists.txt b/Libs/DICOM/Widgets/Testing/Cpp/CMakeLists.txt index 406e4e780e..04dbb8d450 100644 --- a/Libs/DICOM/Widgets/Testing/Cpp/CMakeLists.txt +++ b/Libs/DICOM/Widgets/Testing/Cpp/CMakeLists.txt @@ -14,6 +14,7 @@ SET(LIBRARY_NAME ${PROJECT_NAME}) ADD_EXECUTABLE(${KIT}CppTests ${Tests}) TARGET_LINK_LIBRARIES(${KIT}CppTests ${LIBRARY_NAME}) +TARGET_LINK_LIBRARIES(${KIT}CppTests -lxml2 -lssl -lcrypto -ldcmdsig -ltiff -ldcmnet -lwrap) SET( KIT_TESTS ${CPP_TEST_PATH}/${KIT}CppTests) diff --git a/Libs/DICOM/Widgets/Testing/Cpp/ctkDICOMDatasetViewTest1.cpp b/Libs/DICOM/Widgets/Testing/Cpp/ctkDICOMDatasetViewTest1.cpp index 6d53064eb8..726b6daae1 100644 --- a/Libs/DICOM/Widgets/Testing/Cpp/ctkDICOMDatasetViewTest1.cpp +++ b/Libs/DICOM/Widgets/Testing/Cpp/ctkDICOMDatasetViewTest1.cpp @@ -10,7 +10,11 @@ #include "ctkDICOMDatasetView.h" // DCMTK includes -#include +#ifndef WIN32 +#define HAVE_CONFIG_H +#endif +#include + // STD includes #include diff --git a/Libs/DICOM/Widgets/ctkDICOMAppWidget.cpp b/Libs/DICOM/Widgets/ctkDICOMAppWidget.cpp index e17c04464e..e3a87544ef 100644 --- a/Libs/DICOM/Widgets/ctkDICOMAppWidget.cpp +++ b/Libs/DICOM/Widgets/ctkDICOMAppWidget.cpp @@ -1,7 +1,10 @@ // std includes #include -#include +#ifndef WIN32 +#define HAVE_CONFIG_H +#endif +#include // Qt includes #include diff --git a/Utilities/CMake/FindDCMTK.cmake b/Utilities/CMake/FindDCMTK.cmake index ad86fe9b32..31218fdf06 100644 --- a/Utilities/CMake/FindDCMTK.cmake +++ b/Utilities/CMake/FindDCMTK.cmake @@ -1,7 +1,7 @@ # - find DCMTK libraries and applications # -# DCMTK_INCLUDE_DIR - Directories to include to use DCMTK +# 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 @@ -13,7 +13,8 @@ #============================================================================= # Copyright 2004-2009 Kitware, Inc. -# Copyright 2009 Mathieu Malaterre +# 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. @@ -28,312 +29,127 @@ # # Written for VXL by Amitha Perera. # Upgraded for GDCM by Mathieu Malaterre. -# - -IF( NOT DCMTK_FOUND ) - SET( DCMTK_DIR "/usr/include/dcmtk/" - CACHE PATH "Root of DCMTK source tree (optional)." ) - MARK_AS_ADVANCED( DCMTK_DIR ) -ENDIF( NOT DCMTK_FOUND ) - -FIND_PATH( DCMTK_config_INCLUDE_DIR osconfig.h - PATHS - ${DCMTK_DIR}/config/include - ${DCMTK_DIR}/config - ${DCMTK_DIR}/include/dcmtk/config - ${DCMTK_DIR}/include - NO_DEFAULT_PATH - -) - -FIND_PATH( DCMTK_ofstd_INCLUDE_DIR ofstdinc.h - PATHS - ${DCMTK_DIR}/ofstd/include - ${DCMTK_DIR}/ofstd - ${DCMTK_DIR}/include/ofstd - ${DCMTK_DIR}/include/dcmtk/ofstd - NO_DEFAULT_PATH -) - -FIND_LIBRARY( DCMTK_ofstd_LIBRARY ofstd - PATHS - ${DCMTK_DIR}/ofstd/libsrc - ${DCMTK_DIR}/ofstd/libsrc/Release - ${DCMTK_DIR}/ofstd/libsrc/Debug - ${DCMTK_DIR}/ofstd/Release - ${DCMTK_DIR}/ofstd/Debug - ${DCMTK_DIR}/lib - NO_DEFAULT_PATH -) - -FIND_PATH( DCMTK_oflog_INCLUDE_DIR logger.h - PATHS - ${DCMTK_DIR}/oflog/include - ${DCMTK_DIR}/oflog - ${DCMTK_DIR}/include/oflog - ${DCMTK_DIR}/include/dcmtk/oflog - NO_DEFAULT_PATH -) - -FIND_LIBRARY( DCMTK_oflog_LIBRARY oflog - PATHS - ${DCMTK_DIR}/oflog/libsrc - ${DCMTK_DIR}/oflog/libsrc/Release - ${DCMTK_DIR}/oflog/libsrc/Debug - ${DCMTK_DIR}/oflog/Release - ${DCMTK_DIR}/oflog/Debug - ${DCMTK_DIR}/lib - NO_DEFAULT_PATH -) - - - -FIND_PATH( DCMTK_dcmdata_INCLUDE_DIR dctypes.h - PATHS - ${DCMTK_DIR}/include/dcmdata - ${DCMTK_DIR}/include/dcmtk/dcmdata - ${DCMTK_DIR}/dcmdata - ${DCMTK_DIR}/dcmdata/include - NO_DEFAULT_PATH -) - -FIND_LIBRARY( DCMTK_dcmdata_LIBRARY dcmdata - PATHS - ${DCMTK_DIR}/dcmdata/libsrc - ${DCMTK_DIR}/dcmdata/libsrc/Release - ${DCMTK_DIR}/dcmdata/libsrc/Debug - ${DCMTK_DIR}/dcmdata/Release - ${DCMTK_DIR}/dcmdata/Debug - ${DCMTK_DIR}/lib - NO_DEFAULT_PATH -) - -FIND_PATH( DCMTK_dcmjpeg_INCLUDE_DIR djdecode.h - PATHS - ${DCMTK_DIR}/include/dcmjpeg - ${DCMTK_DIR}/include/dcmtk/dcmjpeg - ${DCMTK_DIR}/dcmjpeg - ${DCMTK_DIR}/dcmjpeg/include - NO_DEFAULT_PATH -) - -FIND_LIBRARY( DCMTK_dcmjpeg_LIBRARY dcmjpeg - PATHS - ${DCMTK_DIR}/dcmjpeg/libsrc - ${DCMTK_DIR}/dcmjpeg/libsrc/Release - ${DCMTK_DIR}/dcmjpeg/libsrc/Debug - ${DCMTK_DIR}/dcmjpeg/Release - ${DCMTK_DIR}/dcmjpeg/Debug - ${DCMTK_DIR}/lib - NO_DEFAULT_PATH -) - -FIND_LIBRARY( DCMTK_ijg12_LIBRARY ijg12 - PATHS - ${DCMTK_DIR}/dcmjpeg/libsrc - ${DCMTK_DIR}/dcmjpeg/libsrc/Release - ${DCMTK_DIR}/dcmjpeg/libsrc/Debug - ${DCMTK_DIR}/dcmjpeg/Release - ${DCMTK_DIR}/dcmjpeg/Debug - ${DCMTK_DIR}/lib - NO_DEFAULT_PATH -) - -FIND_LIBRARY( DCMTK_ijg16_LIBRARY ijg16 - PATHS - ${DCMTK_DIR}/dcmjpeg/libsrc - ${DCMTK_DIR}/dcmjpeg/libsrc/Release - ${DCMTK_DIR}/dcmjpeg/libsrc/Debug - ${DCMTK_DIR}/dcmjpeg/Release - ${DCMTK_DIR}/dcmjpeg/Debug - ${DCMTK_DIR}/lib - NO_DEFAULT_PATH -) - -FIND_LIBRARY( DCMTK_ijg8_LIBRARY ijg8 - PATHS - ${DCMTK_DIR}/dcmjpeg/libsrc - ${DCMTK_DIR}/dcmjpeg/libsrc/Release - ${DCMTK_DIR}/dcmjpeg/libsrc/Debug - ${DCMTK_DIR}/dcmjpeg/Release - ${DCMTK_DIR}/dcmjpeg/Debug - ${DCMTK_DIR}/lib - NO_DEFAULT_PATH -) - -FIND_PATH( DCMTK_dcmnet_INCLUDE_DIR dimse.h - PATHS - ${DCMTK_DIR}/include/dcmnet - ${DCMTK_DIR}/include/dcmtk/dcmnet - ${DCMTK_DIR}/dcmnet - ${DCMTK_DIR}/dcmnet/include - NO_DEFAULT_PATH -) - -FIND_LIBRARY( DCMTK_dcmnet_LIBRARY dcmnet - PATHS - ${DCMTK_DIR}/dcmnet/libsrc - ${DCMTK_DIR}/dcmnet/libsrc/Release - ${DCMTK_DIR}/dcmnet/libsrc/Debug - ${DCMTK_DIR}/dcmnet/Release - ${DCMTK_DIR}/dcmnet/Debug - ${DCMTK_DIR}/lib - NO_DEFAULT_PATH -) - -FIND_PATH( DCMTK_dcmimgle_INCLUDE_DIR dcmimage.h - PATHS - ${DCMTK_DIR}/dcmimgle/include - ${DCMTK_DIR}/dcmimgle - ${DCMTK_DIR}/include/dcmimgle - ${DCMTK_DIR}/include/dcmtk/dcmimgle - NO_DEFAULT_PATH -) - -FIND_LIBRARY( DCMTK_dcmimgle_LIBRARY dcmimgle - PATHS - ${DCMTK_DIR}/dcmimgle/libsrc - ${DCMTK_DIR}/dcmimgle/libsrc/Release - ${DCMTK_DIR}/dcmimgle/libsrc/Debug - ${DCMTK_DIR}/dcmimgle/Release - ${DCMTK_DIR}/dcmimgle/Debug - ${DCMTK_DIR}/lib - NO_DEFAULT_PATH -) - -# MM: I could not find this library on debian system / dcmtk 3.5.4 -# Michael Onken: this module is now called dcmqrdb. I will re-work that script soon... -FIND_LIBRARY(DCMTK_imagedb_LIBRARY imagedb - PATHS - ${DCMTK_DIR}/imagectn/libsrc/Release - ${DCMTK_DIR}/imagectn/libsrc/ - ${DCMTK_DIR}/imagectn/libsrc/Debug - NO_DEFAULT_PATH - ) - -IF( DCMTK_config_INCLUDE_DIR - AND DCMTK_ofstd_INCLUDE_DIR - AND DCMTK_ofstd_LIBRARY - AND DCMTK_oflog_INCLUDE_DIR - AND DCMTK_oflog_LIBRARY - AND DCMTK_dcmdata_INCLUDE_DIR - AND DCMTK_dcmdata_LIBRARY - AND DCMTK_dcmjpeg_INCLUDE_DIR - AND DCMTK_dcmjpeg_LIBRARY - AND DCMTK_dcmnet_INCLUDE_DIR - AND DCMTK_dcmnet_LIBRARY - AND DCMTK_dcmimgle_INCLUDE_DIR - AND DCMTK_dcmimgle_LIBRARY ) - -# # Wrap library is required on Linux -# IF(NOT WIN32) -# FIND_LIBRARY(DCMTK_wrap_LIBRARY wrap) -# MESSAGE(DCMTK_wrap_LIBRARY:${DCMTK_wrap_LIBRARY}) -# IF(NOT DCMTK_wrap_LIBRARY) -# MESSAGE(FATAL_ERROR "error: Wrap library is required to use DCMTK. " -# "On Ubuntu, you could install it using 'sudo apt-get libwrap0'") -# ENDIF() -# ENDIF() +# Modified for EasyViz by Thomas Sondergaard. +# - SET(CMAKE_THREAD_LIBS_INIT) - IF(DCMTK_oflog_LIBRARY) - # 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() - - SET( DCMTK_FOUND "YES" ) - SET( DCMTK_INCLUDE_DIR - ${DCMTK_DIR}/include - ${DCMTK_config_INCLUDE_DIR} +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) +endif() + + +foreach(lib + dcmdata + dcmimage + dcmimgle + dcmjpeg + dcmnet + dcmpstat + dcmqrdb + dcmsign + dcmsr + dcmtls + ijg12 + ijg16 + ijg8 + oflog + ofstd) + + find_library(DCMTK_${lib}_LIBRARY + ${lib} + PATHS + ${DCMTK_DIR}/${lib}/libsrc + ${DCMTK_DIR}/${lib}/libsrc/Release + ${DCMTK_DIR}/${lib}/libsrc/Debug + ${DCMTK_DIR}/${lib}/Release + ${DCMTK_DIR}/${lib}/Debug + ${DCMTK_DIR}/lib) + + mark_as_advanced(DCMTK_${lib}_LIBRARY) + + if(DCMTK_${lib}_LIBRARY) + list(APPEND DCMTK_LIBRARIES ${DCMTK_${lib}_LIBRARY}) + endif() + +endforeach() + + +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) + +foreach(dir + config + dcmdata + dcmimage + dcmimgle + dcmjpeg + dcmnet + dcmpstat + dcmqrdb + dcmsign + dcmsr + dcmtls + oflog + ofstd) + find_path(DCMTK_${dir}_INCLUDE_DIR + ${DCMTK_${dir}_TEST_HEADER} + PATHS + ${DCMTK_DIR}/${dir}/include + ${DCMTK_DIR}/${dir} + ${DCMTK_DIR}/include/${dir}) + + mark_as_advanced(DCMTK_${dir}_INCLUDE_DIR) + + if(DCMTK_${dir}_INCLUDE_DIR) + list(APPEND + DCMTK_INCLUDE_DIRS + ${DCMTK_${dir}_INCLUDE_DIR}) + endif() +endforeach() + +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} - ${DCMTK_oflog_INCLUDE_DIR} - ${DCMTK_dcmdata_INCLUDE_DIR} - ${DCMTK_dcmjpeg_INCLUDE_DIR} - ${DCMTK_dcmnet_INCLUDE_DIR} - ${DCMTK_dcmimgle_INCLUDE_DIR} - ) - - SET( DCMTK_LIBRARIES - ${DCMTK_dcmimgle_LIBRARY} - ${DCMTK_dcmnet_LIBRARY} - ${DCMTK_dcmjpeg_LIBRARY} - ${DCMTK_dcmdata_LIBRARY} - ${DCMTK_ijg8_LIBRARY} - ${DCMTK_ijg12_LIBRARY} - ${DCMTK_ijg16_LIBRARY} - ${DCMTK_oflog_LIBRARY} - ${DCMTK_ofstd_LIBRARY} - ${DCMTK_config_LIBRARY} - ${CMAKE_THREAD_LIBS_INIT} - ) - - IF(DCMTK_imagedb_LIBRARY) - SET( DCMTK_LIBRARIES - ${DCMTK_LIBRARIES} - ${DCMTK_imagedb_LIBRARY} - ) - ENDIF(DCMTK_imagedb_LIBRARY) - - IF( WIN32 ) - SET( DCMTK_LIBRARIES ${DCMTK_LIBRARIES} ws2_32 netapi32 wsock32) - ENDIF( WIN32 ) - -# IF (NOT WIN32) -# SET( DCMTK_LIBRARIES ${DCMTK_LIBRARIES} ${DCMTK_wrap_LIBRARY} ) -# ENDIF() - -ENDIF() - -FIND_PROGRAM(DCMTK_DCMDUMP_EXECUTABLE dcmdump - PATHS - ${DCMTK_DIR}/bin - NO_DEFAULT_PATH - ) - -FIND_PROGRAM(DCMTK_DCMDJPEG_EXECUTABLE dcmdjpeg - PATHS - ${DCMTK_DIR}/bin - NO_DEFAULT_PATH - ) - -FIND_PROGRAM(DCMTK_DCMDRLE_EXECUTABLE dcmdrle - PATHS - ${DCMTK_DIR}/bin - NO_DEFAULT_PATH - ) - -FIND_PROGRAM(DCMTK_DCMQRSCP_EXECUTABLE dcmqrscp - PATHS - ${DCMTK_DIR}/bin - NO_DEFAULT_PATH - ) - -FIND_PROGRAM(DCMTK_STORESCU_EXECUTABLE storescu - PATHS - ${DCMTK_DIR}/bin - NO_DEFAULT_PATH - ) - -MARK_AS_ADVANCED( - DCMTK_DCMDUMP_EXECUTABLE - DCMTK_DCMDJPEG_EXECUTABLE - DCMTK_DCMDRLE_EXECUTABLE - DCMTK_DCMQRSCP_EXECUTABLE - DCMTK_STORESCU_EXECUTABLE + PATH + CACHE) + list(APPEND DCMTK_INCLUDE_DIRS ${DCMTK_dcmtk_INCLUDE_DIR}) + mark_as_advanced(DCMTK_dcmtk_INCLUDE_DIR) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(DCMTK DEFAULT_MSG DCMTK_config_INCLUDE_DIR - DCMTK_dcmdata_INCLUDE_DIR - DCMTK_dcmdata_LIBRARY - DCMTK_dcmnet_INCLUDE_DIR - DCMTK_dcmnet_LIBRARY - DCMTK_dcmimgle_INCLUDE_DIR - DCMTK_dcmimgle_LIBRARY - DCMTK_imagedb_LIBRARY DCMTK_ofstd_INCLUDE_DIR DCMTK_ofstd_LIBRARY - DCMTK_oflog_INCLUDE_DIR DCMTK_oflog_LIBRARY - ) + DCMTK_dcmdata_INCLUDE_DIR + DCMTK_dcmdata_LIBRARY + DCMTK_dcmimgle_INCLUDE_DIR + DCMTK_dcmimgle_LIBRARY) + +# Compatibility: This variable is deprecated +set(DCMTK_INCLUDE_DIR ${DCMTK_INCLUDE_DIRS}) +foreach(executable dcmdump dcmdjpeg dcmdrle) + string(TOUPPER ${executable} EXECUTABLE) + find_program(DCMTK_${EXECUTABLE}_EXECUTABLE ${executable} ${DCMTK_DIR}/bin) + mark_as_advanced(DCMTK_${EXECUTABLE}_EXECUTABLE) +endforeach()