diff --git a/CMakeExternals/DCMQI.cmake b/CMakeExternals/DCMQI.cmake index e3500698ec..429e612dc0 100644 --- a/CMakeExternals/DCMQI.cmake +++ b/CMakeExternals/DCMQI.cmake @@ -1,60 +1,59 @@ #----------------------------------------------------------------------------- # DCMQI #----------------------------------------------------------------------------- if(MITK_USE_DCMQI) # Sanity checks if(DEFINED DCMQI_DIR AND NOT EXISTS ${DCMQI_DIR}) message(FATAL_ERROR "DCMQI_DIR variable is defined but corresponds to non-existing directory") endif() set(proj DCMQI) set(proj_DEPENDENCIES DCMTK ITK) set(DCMQI_DEPENDS ${proj}) if(NOT DEFINED DCMQI_DIR) set(additional_cmake_args) if(CTEST_USE_LAUNCHERS) list(APPEND additional_cmake_args "-DCMAKE_PROJECT_${proj}_INCLUDE:FILEPATH=${CMAKE_ROOT}/Modules/CTestUseLaunchers.cmake" ) endif() ExternalProject_Add(${proj} LIST_SEPARATOR ${sep} - URL ${MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL}/dcmqi-1.0.5.tar.gz - URL_MD5 85ac2734f65658e21e55cd5f3141b962 - PATCH_COMMAND ${PATCH_COMMAND} -N -p1 -i ${CMAKE_CURRENT_LIST_DIR}/DCMQI.patch + GIT_REPOSITORY https://github.com/nolden/dcmqi.git + GIT_TAG 8772b4e8d4babeb6e828b3fdb834cb9a4d1d7997 UPDATE_COMMAND "" INSTALL_COMMAND "" CMAKE_GENERATOR ${gen} CMAKE_ARGS ${ep_common_args} ${additional_cmake_args} #-DCMAKE_INSTALL_PREFIX:PATH= -DBUILD_SHARED_LIBS:BOOL=ON -DDCMQI_BUILD_APPS:BOOL=OFF -DDCMTK_DIR:PATH=${DCMTK_DIR} -DITK_DIR:PATH=${ITK_DIR} -DITK_NO_IO_FACTORY_REGISTER_MANAGER:BOOL=ON -DDCMQI_SUPERBUILD:BOOL=OFF -DDCMQI_CMAKE_CXX_STANDARD:STRING=14 CMAKE_CACHE_ARGS ${ep_common_cache_args} CMAKE_CACHE_DEFAULT_ARGS ${ep_common_cache_default_args} DEPENDS ${proj_DEPENDENCIES} ) ExternalProject_Get_Property(${proj} binary_dir) set(DCMQI_DIR ${binary_dir}) #set(${proj}_DIR ${ep_prefix}) #message(${proj}_DIR: ${${proj}_DIR}) #mitkFunctionInstallExternalCMakeProject(${proj}) else() mitkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}") endif() endif() diff --git a/CMakeExternals/DCMQI.patch b/CMakeExternals/DCMQI.patch deleted file mode 100644 index 809ae26557..0000000000 --- a/CMakeExternals/DCMQI.patch +++ /dev/null @@ -1,139 +0,0 @@ -diff --git a/CMake/DCMQIConfig.cmake.in b/CMake/DCMQIConfig.cmake.in -index 7cf66b2..c0d7827 100644 ---- a/CMake/DCMQIConfig.cmake.in -+++ b/CMake/DCMQIConfig.cmake.in -@@ -1,7 +1,6 @@ - @PACKAGE_INIT@ - - set_and_check(DCMTK_DIR "@PACKAGE_DCMTK_DIR_CONFIG@") --set_and_check(SlicerExecutionModel_DIR "@PACKAGE_SlicerExecutionModel_DIR_CONFIG@") - set_and_check(DCMQI_CONFIG_DIR "@PACKAGE_CONFIG_DIR_CONFIG@") - set_and_check(DCMQI_TARGETS "@PACKAGE_CONFIG_DIR_CONFIG@/DCMQITargets.cmake") - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index f9f215f..5680327 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -5,6 +5,8 @@ if(NOT DCMQI_CMAKE_CXX_STANDARD) - endif() - set(CMAKE_CXX_STANDARD ${DCMQI_CMAKE_CXX_STANDARD}) - -+set(CMAKE_POSITION_INDEPENDENT_CODE 1) -+ - set(DCMQI_CMAKE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/CMake") - - #----------------------------------------------------------------------------- -@@ -279,7 +279,6 @@ if(NOT Slicer_DIR) - # For a build tree - set(CONFIG_DIR_CONFIG ${CMAKE_BINARY_DIR}) - set(DCMTK_DIR_CONFIG ${DCMTK_DIR}) -- set(SlicerExecutionModel_DIR_CONFIG ${SlicerExecutionModel_DIR}) - set(${PROJECT_NAME}_CONFIG_CODE "####### Expanded from \@DCMQI_CONFIG_CODE\@ #######\n") - set(${PROJECT_NAME}_CONFIG_CODE "find_package(DCMTK NO_MODULE REQUIRED)\n") - set(${PROJECT_NAME}_CONFIG_CODE "${${PROJECT_NAME}_CONFIG_CODE}##################################################") -@@ -291,7 +290,6 @@ if(NOT Slicer_DIR) - PATH_VARS - CONFIG_DIR_CONFIG - DCMTK_DIR_CONFIG -- SlicerExecutionModel_DIR_CONFIG - NO_CHECK_REQUIRED_COMPONENTS_MACRO - ) - -@@ -303,33 +301,5 @@ endif() - - if(DEFINED Slicer_DIR) - include(${Slicer_EXTENSION_CPACK}) --else() -- set(CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${CMAKE_BINARY_DIR};${PROJECT_NAME};RuntimeLibraries;/") -- set(CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${DCMTK_DIR};DCMTK;shlib;/") -- set(CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ITK_DIR};ITK;RuntimeLibraries;/") -- set(CPACK_PACKAGE_NAME "dcmqi") -- set(CPACK_PACKAGE_VENDOR "Quantitative Image Informatics for Cancer Research (QIICR)") -- set(CPACK_PACKAGE_VERSION_MAJOR ${DCMQI_MAJOR_VERSION}) -- set(CPACK_PACKAGE_VERSION_MINOR ${DCMQI_MINOR_VERSION}) -- set(CPACK_PACKAGE_VERSION_PATCH ${DCMQI_PATCH_VERSION}) -- if(CMAKE_SYSTEM_NAME MATCHES "Darwin") -- set(CPACK_SYSTEM_NAME "mac") -- elseif(CMAKE_SYSTEM_NAME MATCHES "Linux") -- set(CPACK_SYSTEM_NAME "linux") -- elseif(CMAKE_SYSTEM_NAME MATCHES "Windows") -- if(CMAKE_SIZEOF_VOID_P EQUAL 8) -- set(CPACK_SYSTEM_NAME win64) -- else() -- set(CPACK_SYSTEM_NAME win32) -- endif() -- endif() -- set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_SYSTEM_NAME}") -- set(CPACK_PACKAGE_DESCRIPTION_FILE ${CMAKE_CURRENT_SOURCE_DIR}/README.md) -- set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${EXTENSION_DESCRIPTION}) -- if(UNIX) -- set(CPACK_GENERATOR "TGZ") -- elseif(WIN32) -- set(CPACK_GENERATOR "ZIP") -- endif() - include(CPack) - endif() -diff --git a/libsrc/CMakeLists.txt b/libsrc/CMakeLists.txt -index 4d25e05..e10edad 100644 ---- a/libsrc/CMakeLists.txt -+++ b/libsrc/CMakeLists.txt -@@ -1,9 +1,8 @@ - - #----------------------------------------------------------------------------- - include(FindGit) --include(dcmqiMacroExtractRepositoryInfo) -+include(CheckCXXCompilerFlag) - --dcmqiMacroExtractRepositoryInfo(VAR_PREFIX dcmqi) - configure_file( - ${DCMQI_SOURCE_DIR}/CMake/dcmqiVersionConfigure.h.in - ${DCMQI_BINARY_DIR}/include/dcmqi/internal/VersionConfigure.h -@@ -37,6 +36,11 @@ add_library(${lib_name} STATIC - ${ADDITIONAL_SRCS} - ) - -+CHECK_CXX_COMPILER_FLAG("-fPIC" CXX_HAS_FPIC) -+if(CXX_HAS_FPIC) -+ target_compile_options(${lib_name} PRIVATE "-fPIC") -+endif() -+ - if(DCMQI_LIBRARY_PROPERTIES) - set_target_properties(${lib_name} PROPERTIES ${DCMQI_LIBRARY_PROPERTIES}) - endif() -diff --git a/libsrc/Helper.cpp b/libsrc/Helper.cpp -index 92f69c3..eb5aa39 100644 ---- a/libsrc/Helper.cpp -+++ b/libsrc/Helper.cpp -@@ -2,6 +2,10 @@ - // DCMQI includes - #include "dcmqi/Helper.h" - -+// DCMTK includes -+#include -+ -+ - namespace dcmqi { - - bool Helper::isUndefinedOrPathDoesNotExist(const string &var, const string &humanReadableName) { -@@ -57,7 +61,7 @@ namespace dcmqi { - #endif - cout << "Searching recursively " << directory << " for DICOM files" << endl; - if(OFStandard::searchDirectoryRecursively(directory.c_str(), fileList)) { -- for(OFIterator fileListIterator=fileList.begin(); fileListIterator!=fileList.end(); fileListIterator++) { -+ for(OFListIterator(OFString) fileListIterator=fileList.begin(); fileListIterator!=fileList.end(); fileListIterator++) { - dicomImageFiles.push_back((*fileListIterator).c_str()); - } - } -diff --git a/libsrc/ParaMapConverter.cpp b/libsrc/ParaMapConverter.cpp -index 3aa3933..fbb63b3 100644 ---- a/libsrc/ParaMapConverter.cpp -+++ b/libsrc/ParaMapConverter.cpp -@@ -133,7 +133,7 @@ namespace dcmqi { - realWorldValueMappingItem->setRealWorldValueSlope(metaInfo.getRealWorldValueSlope()); - realWorldValueMappingItem->setRealWorldValueIntercept(atof(metaInfo.getRealWorldValueIntercept().c_str())); - -- realWorldValueMappingItem->setRealWorldValueFirstValueMappeSigned(metaInfo.getFirstValueMapped()); -+ realWorldValueMappingItem->setRealWorldValueFirstValueMappedSigned(metaInfo.getFirstValueMapped()); - realWorldValueMappingItem->setRealWorldValueLastValueMappedSigned(metaInfo.getLastValueMapped()); - - CodeSequenceMacro* measurementUnitCode = metaInfo.getMeasurementUnitsCode();