diff --git a/CMake/FindDCMTK.cmake b/CMake/FindDCMTK.cmake deleted file mode 100644 index ccdd2ce..0000000 --- a/CMake/FindDCMTK.cmake +++ /dev/null @@ -1,186 +0,0 @@ -# adapted version of FindDCMTK, better suited for super-builds - -# - find DCMTK libraries and applications -# - -# 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 -# -# DCMTK_DIR can be used to make it simpler to find the various include -# directories and compiled libraries if you've just compiled it in the -# source tree. Just set it to the root of the tree where you extracted -# the source (default to /usr/include/dcmtk/) - -#============================================================================= -# 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 distributed 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. -# - -# 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 - -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() - -# Find all libraries, store debug and release separately -foreach(lib - dcmpstat - dcmsr - dcmsign - dcmtls - dcmqrdb - dcmnet - dcmjpeg - dcmimage - dcmimgle - dcmdata - dcmrt - 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 - set(DCMTK_${lib}_LIBRARY) - if(DCMTK_${lib}_LIBRARY_RELEASE) - list(APPEND DCMTK_LIBRARIES optimized ${DCMTK_${lib}_LIBRARY_RELEASE}) - list(APPEND DCMTK_${lib}_LIBRARY optimized ${DCMTK_${lib}_LIBRARY_RELEASE}) - endif() - - if(DCMTK_${lib}_LIBRARY_DEBUG) - list(APPEND DCMTK_LIBRARIES debug ${DCMTK_${lib}_LIBRARY_DEBUG}) - list(APPEND DCMTK_${lib}_LIBRARY debug ${DCMTK_${lib}_LIBRARY_DEBUG}) - 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) -set(DCMTK_dcmrt_TEST_HEADER drtstrct.h) - -foreach(dir - config - dcmdata - dcmimage - dcmimgle - dcmjpeg - dcmnet - dcmpstat - dcmqrdb - dcmsign - dcmsr - dcmtls - dcmrt - ofstd) - 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}) - - mark_as_advanced(DCMTK_${dir}_INCLUDE_DIR) - #message("** DCMTKs ${dir} found at ${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() - -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() - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(DCMTK DEFAULT_MSG - DCMTK_config_INCLUDE_DIR - DCMTK_ofstd_INCLUDE_DIR - DCMTK_ofstd_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}) diff --git a/CMake/FindEigen.cmake b/CMake/FindEigen.cmake index 2ec4304..d8fa482 100644 --- a/CMake/FindEigen.cmake +++ b/CMake/FindEigen.cmake @@ -1,9 +1,13 @@ find_path(Eigen_INCLUDE_DIR NAMES Eigen/Eigen - PATHS ${Eigen_DIR} ${MITK_EXTERNAL_PROJECT_PREFIX} ${CMAKE_PREFIX_PATH} + PATHS ${Eigen_FIX_DIR} ${Eigen_DIR} ${MITK_EXTERNAL_PROJECT_PREFIX} ${CMAKE_PREFIX_PATH} PATH_SUFFIXES include include/eigen3 ) +if(NOT Eigen_DIR) + set(Eigen_DIR ${Eigen_FIX_DIR}) +endif() + if (NOT TARGET Eigen) add_library(Eigen INTERFACE IMPORTED GLOBAL) set_property(TARGET Eigen APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${Eigen_INCLUDE_DIR}) diff --git a/CMake/PackageDepends/MITK_DCMTK_Config.cmake b/CMake/PackageDepends/MITK_DCMTK_Config.cmake index 7be335f..21f0dac 100644 --- a/CMake/PackageDepends/MITK_DCMTK_Config.cmake +++ b/CMake/PackageDepends/MITK_DCMTK_Config.cmake @@ -4,30 +4,6 @@ endif( NOT WIN32 AND NOT APPLE ) set(QT_USE_QTSQL 1) -if(EXISTS ${DCMTK_config_INCLUDE_DIR}/osconfig.h) - - file(READ ${DCMTK_config_INCLUDE_DIR}/osconfig.h _osconfig_h) - if(NOT _osconfig_h MATCHES "PACKAGE_VERSION_NUMBER \"354\"") - # message(STATUS "Found DCMTK newer that 3.5.4 ...") - set(MITK_USE_DCMTK_NEWER_THAN_3_5_4 TRUE) - # assume the new oflog library is located next to the others - # this can be removed if FindDCMTK is adapted for 3.5.5 - # treat Debug and Release separately - get_filename_component(_DCMTK_lib_dir_release ${DCMTK_ofstd_LIBRARY_RELEASE} PATH) - get_filename_component(_DCMTK_lib_dir_debug ${DCMTK_ofstd_LIBRARY_DEBUG} PATH) - set(DCMTK_oflog_LIBRARY_RELEASE ) - set(DCMTK_oflog_LIBRARY_DEBUG ) - if(_DCMTK_lib_dir_release) - find_library(DCMTK_oflog_LIBRARY_RELEASE oflog ${_DCMTK_lib_dir_release} ) - list(APPEND DCMTK_LIBRARIES optimized ${DCMTK_oflog_LIBRARY_RELEASE} ) - endif() - if(_DCMTK_lib_dir_debug) - find_library(DCMTK_oflog_LIBRARY_DEBUG oflog ${_DCMTK_lib_dir_debug} ) - list(APPEND DCMTK_LIBRARIES debug ${DCMTK_oflog_LIBRARY_DEBUG} ) - endif() - endif() -endif() - # # Usually all code should be adapted to DCMTK 3.6 # If necessary you could configure the MITK_USE_DCMTK_NEWER_THAN_3_5_4 variable diff --git a/CMakeExternals/Eigen.cmake b/CMakeExternals/Eigen.cmake index 00e0284..a07ecf2 100644 --- a/CMakeExternals/Eigen.cmake +++ b/CMakeExternals/Eigen.cmake @@ -39,6 +39,8 @@ if(MITK_USE_Eigen) mitkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}") + find_package(Eigen) + endif() endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index 5539396..194301a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -832,9 +832,6 @@ set(Boost_USE_STATIC_LIBS 0) set(Boost_USE_STATIC_RUNTIME 0) set(Boost_ADDITIONAL_VERSIONS "1.59" "1.59.0") -# We need this later for a DCMTK workaround -set(_dcmtk_dir_orig ${DCMTK_DIR}) - # This property is populated at the top half of this file get_property(MITK_EXTERNAL_PROJECTS GLOBAL PROPERTY MITK_EXTERNAL_PROJECTS) foreach(ep ${MITK_EXTERNAL_PROJECTS}) @@ -865,17 +862,7 @@ set(CMAKE_MODULE_PATH ) if(MITK_USE_DCMTK) - # Due to the preferred CONFIG mode in find_package calls above, - # the DCMTKConfig.cmake file is read, which does not provide useful - # package information. We explictly need MODULE mode to find DCMTK. - if(${_dcmtk_dir_orig} MATCHES "${MITK_EXTERNAL_PROJECT_PREFIX}.*") - # Help our FindDCMTK.cmake script find our super-build DCMTK - set(DCMTK_DIR ${MITK_EXTERNAL_PROJECT_PREFIX}) - else() - # Use the original value - set(DCMTK_DIR ${_dcmtk_dir_orig}) - endif() - find_package(DCMTK REQUIRED MODULE) + find_package(DCMTK REQUIRED) endif() if(MITK_USE_Python) @@ -1336,6 +1323,10 @@ get_property(MITK_ADDITIONAL_LIBRARY_SEARCH_PATHS_CONFIG GLOBAL PROPERTY MITK_AD set(MITK_CONFIG_EXTERNAL_PROJECTS ) #string(REPLACE "^^" ";" _mitk_external_projects ${MITK_EXTERNAL_PROJECTS}) +if(MITK_USE_Boost) + set(Boost_DIR ${BOOST_ROOT}) +endif() + foreach(ep ${MITK_EXTERNAL_PROJECTS}) get_property(_components GLOBAL PROPERTY MITK_${ep}_COMPONENTS) set(MITK_CONFIG_EXTERNAL_PROJECTS "${MITK_CONFIG_EXTERNAL_PROJECTS} diff --git a/MITKConfig.cmake.in b/MITKConfig.cmake.in index 8e1cb55..a493156 100644 --- a/MITKConfig.cmake.in +++ b/MITKConfig.cmake.in @@ -161,8 +161,8 @@ if(MITK_USE_Boost) set(Boost_ADDITIONAL_VERSIONS "1.59" "1.59.0") endif() -# We need this later for a DCMTK workaround -set(_dcmtk_dir_orig "@DCMTK_DIR@") +# We need this because Eigen_DIR gets destroyed somewhere in the build system +set(Eigen_FIX_DIR "@Eigen_FIX_DIR@") # ----------------------------------------- # External dependencies from the superbuild @@ -178,17 +178,7 @@ set(CMAKE_MODULE_PATH ${MITK_CMAKE_MODULE_PATH} ${CMAKE_MODULE_PATH}) # Special handling for DCMTK if(MITK_USE_DCMTK) - # Due to the preferred CONFIG mode in find_package calls above, - # the DCMTKConfig.cmake file is read, which does not provide useful - # package information. We explictly need MODULE mode to find DCMTK. - if(${_dcmtk_dir_orig} MATCHES "${MITK_EXTERNAL_PROJECT_PREFIX}.*") - # Help our FindDCMTK.cmake script find our super-build DCMTK - set(DCMTK_DIR ${MITK_EXTERNAL_PROJECT_PREFIX}) - else() - # Use the original value - set(DCMTK_DIR ${_dcmtk_dir_orig}) - endif() - find_package(DCMTK REQUIRED MODULE) + find_package(DCMTK REQUIRED) endif() # ----------------------------------------- diff --git a/Modules/DICOMReader/include/mitkITKDICOMSeriesReaderHelper.txx b/Modules/DICOMReader/include/mitkITKDICOMSeriesReaderHelper.txx index 071f899..b872c73 100644 --- a/Modules/DICOMReader/include/mitkITKDICOMSeriesReaderHelper.txx +++ b/Modules/DICOMReader/include/mitkITKDICOMSeriesReaderHelper.txx @@ -21,7 +21,7 @@ See LICENSE.txt or http://www.mitk.org for details. //#include //#include -#include +#include template mitk::Image::Pointer diff --git a/Modules/DICOMReader/src/mitkDICOMSortByTag.cpp b/Modules/DICOMReader/src/mitkDICOMSortByTag.cpp index b2cb0e4..c7d6f3a 100644 --- a/Modules/DICOMReader/src/mitkDICOMSortByTag.cpp +++ b/Modules/DICOMReader/src/mitkDICOMSortByTag.cpp @@ -16,7 +16,7 @@ See LICENSE.txt or http://www.mitk.org for details. #include "mitkDICOMSortByTag.h" -#include "ofstd.h" +#include "dcmtk/ofstd/ofstd.h" mitk::DICOMSortByTag ::DICOMSortByTag(const DICOMTag& tag, DICOMSortCriterion::Pointer secondaryCriterion) diff --git a/Modules/DICOMReader/src/mitkDICOMTag.cpp b/Modules/DICOMReader/src/mitkDICOMTag.cpp index f3a0452..24b054b 100644 --- a/Modules/DICOMReader/src/mitkDICOMTag.cpp +++ b/Modules/DICOMReader/src/mitkDICOMTag.cpp @@ -25,7 +25,7 @@ See LICENSE.txt or http://www.mitk.org for details. #include #include "mitkLogMacros.h" -#include "ofstd.h" +#include "dcmtk/ofstd/ofstd.h" mitk::DICOMTag ::DICOMTag(unsigned int group, unsigned int element) diff --git a/Modules/DICOMReader/src/mitkITKDICOMSeriesReaderHelper.cpp b/Modules/DICOMReader/src/mitkITKDICOMSeriesReaderHelper.cpp index f8c2308..7c68179 100644 --- a/Modules/DICOMReader/src/mitkITKDICOMSeriesReaderHelper.cpp +++ b/Modules/DICOMReader/src/mitkITKDICOMSeriesReaderHelper.cpp @@ -16,7 +16,7 @@ See LICENSE.txt or http://www.mitk.org for details. //#define MBILOG_ENABLE_DEBUG -#include +#include #define BOOST_DATE_TIME_NO_LIB @@ -28,7 +28,7 @@ See LICENSE.txt or http://www.mitk.org for details. #include "mitkDICOMGDCMTagScanner.h" #include "mitkArbitraryTimeGeometry.h" -#include "dcvrda.h" +#include "dcmtk/dcmdata/dcvrda.h" const mitk::DICOMTag mitk::ITKDICOMSeriesReaderHelper::AcquisitionDateTag = mitk::DICOMTag( 0x0008, 0x0022 ); diff --git a/SuperBuild.cmake b/SuperBuild.cmake index 8c2287c..ce954d2 100644 --- a/SuperBuild.cmake +++ b/SuperBuild.cmake @@ -405,6 +405,7 @@ ExternalProject_Add(${proj} -DDCMTK_CMAKE_DEBUG_POSTFIX:STRING=${DCMTK_CMAKE_DEBUG_POSTFIX} -DBOOST_ROOT:PATH=${BOOST_ROOT} -DBOOST_LIBRARYDIR:PATH=${BOOST_LIBRARYDIR} + -DEigen_FIX_DIR:PATH=${Eigen_DIR} -DMITK_Breakpad_SRC:PATH=${Breakpad_SRC} -DMITK_Breakpad_DIR:PATH=${Breakpad_DIR} -DMITK_USE_Boost_LIBRARIES:STRING=${MITK_USE_Boost_LIBRARIES}