diff --git a/CMakeExternals/DCMQI.patch b/CMakeExternals/DCMQI.patch index 82aa1d18cc..809ae26557 100644 --- a/CMakeExternals/DCMQI.patch +++ b/CMakeExternals/DCMQI.patch @@ -1,130 +1,139 @@ 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();