diff --git a/CMake/FindDCMQI.cmake b/CMake/FindDCMQI.cmake index 2c4f215b03..873d8c70c7 100644 --- a/CMake/FindDCMQI.cmake +++ b/CMake/FindDCMQI.cmake @@ -1,47 +1,47 @@ set(DCMQI_DIR ${MITK_EXTERNAL_PROJECT_PREFIX}/src/DCMQI-build) find_path(DCMQI_INCLUDE_DIR NAMES DCMQI/DCMQI PATHS ${DCMQI_DIR}/../DCMQI ${MITK_EXTERNAL_PROJECT_PREFIX} ${CMAKE_PREFIX_PATH} PATH_SUFFIXES include include/DCMQI ) -set(DCMQI_INCLUDE_DIR ${MITK_EXTERNAL_PROJECT_PREFIX}/src/DCMQI/include ${MITK_EXTERNAL_PROJECT_PREFIX}/src/DCMQI/jsoncpp ${DCMQI_DIR}) +set(DCMQI_INCLUDE_DIR ${DCMQI_DIR}/include ${MITK_EXTERNAL_PROJECT_PREFIX}/src/DCMQI/include ${MITK_EXTERNAL_PROJECT_PREFIX}/src/DCMQI/jsoncpp ${DCMQI_DIR}) find_package_handle_standard_args(DCMQI FOUND_VAR DCMQI_FOUND REQUIRED_VARS DCMQI_INCLUDE_DIR ) # Find all libraries, store debug and release separately # Find Release libraries find_library(DCMQI_LIBRARY_RELEASE dcmqi PATHS ${DCMQI_DIR}/bin ${DCMQI_DIR}/bin/Release NO_DEFAULT_PATH ) # Find Debug libraries find_library(DCMQI_LIBRARY_DEBUG dcmqi${DCMTK_CMAKE_DEBUG_POSTFIX} PATHS ${DCMQI_DIR}/bin ${DCMQI_DIR}/bin/Debug NO_DEFAULT_PATH ) mark_as_advanced(DCMQI_LIBRARY_RELEASE) mark_as_advanced(DCMQI_LIBRARY_DEBUG) # Add libraries to variable according to build type set(DCMQI_LIBRARY) mark_as_advanced(DCMQI_LIBRARY) if(DCMQI_LIBRARY_RELEASE) list(APPEND DCMQI_LIBRARY optimized ${DCMQI_LIBRARY_RELEASE}) endif() if(DCMQI_LIBRARY_DEBUG) list(APPEND DCMQI_LIBRARY debug ${DCMQI_LIBRARY_DEBUG}) endif() diff --git a/CMakeExternals/DCMQI.cmake b/CMakeExternals/DCMQI.cmake index d91760dd34..17b5f06f20 100644 --- a/CMakeExternals/DCMQI.cmake +++ b/CMakeExternals/DCMQI.cmake @@ -1,57 +1,58 @@ #----------------------------------------------------------------------------- # 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} #TODO MITK-Data URL https://dl.dropbox.com/s/1rye5oewqxx4zn5/dcmqi-src-org.tar.gz - URL_MD5 f8333c11efdc84fc2a54bf9c276c103c + URL_MD5 d0e0b5c6333f814d3869f23dc84c6407 PATCH_COMMAND ${PATCH_COMMAND} -N -p1 -i ${CMAKE_CURRENT_LIST_DIR}/DCMQI.patch UPDATE_COMMAND "" INSTALL_COMMAND "" CMAKE_GENERATOR ${gen} CMAKE_ARGS ${ep_common_args} ${additional_cmake_args} #-DCMAKE_INSTALL_PREFIX:PATH= + -DDCMQI_BUILD_APPS=OFF -DDCMTK_DIR:PATH=${DCMTK_DIR} -DITK_DIR:PATH=${ITK_DIR} -DDCMQI_SUPERBUILD:BOOL=OFF 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 index fe7ead450b..e8e6e336fd 100644 --- a/CMakeExternals/DCMQI.patch +++ b/CMakeExternals/DCMQI.patch @@ -1,95 +1,20 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -old mode 100644 -new mode 100755 -index 845863f..e23cb9e +index 91365f5..a8c8744 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -158,6 +158,7 @@ set(ADDITIONAL_C_FLAGS "" CACHE STRING "Additional C Flags") - mark_as_advanced(ADDITIONAL_C_FLAGS) - mark_as_superbuild(ADDITIONAL_C_FLAGS) +@@ -304,7 +304,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}##################################################") +@@ -316,7 +315,6 @@ if(NOT Slicer_DIR) + PATH_VARS + CONFIG_DIR_CONFIG + DCMTK_DIR_CONFIG +- SlicerExecutionModel_DIR_CONFIG + NO_CHECK_REQUIRED_COMPONENTS_MACRO + ) -+set(CMAKE_CXX_FLAGS "-fPIC") - set(ADDITIONAL_CXX_FLAGS "" CACHE STRING "Additional CXX Flags") - mark_as_advanced(ADDITIONAL_CXX_FLAGS) - mark_as_superbuild(ADDITIONAL_CXX_FLAGS) -@@ -206,17 +207,6 @@ foreach(file - install(FILES ${file} DESTINATION ${DCMQI_INSTALL_CMAKE_DIR} COMPONENT Development) - endforeach() - --#----------------------------------------------------------------------------- --# DCMQI dependencies - Projects should be TOPOLOGICALLY ordered --#----------------------------------------------------------------------------- --set(DCMQI_DEPENDENCIES -- zlib -- DCMTK -- ITK -- SlicerExecutionModel -- ) -- --include(CMake/ctkBlockCheckDependencies.cmake) - - - #----------------------------------------------------------------------------- -@@ -229,11 +219,26 @@ if(DCMQI_SUPERBUILD) - endif() - - find_package(DCMTK NO_MODULE REQUIRED) --find_package(SlicerExecutionModel NO_MODULE REQUIRED GenerateCLP) -+find_package(SlicerExecutionModel QUIET NO_MODULE) - find_package(ITK NO_MODULE REQUIRED) - include(${ITK_USE_FILE}) - --include(${SlicerExecutionModel_USE_FILE}) -+#----------------------------------------------------------------------------- -+# DCMQI dependencies - Projects should be TOPOLOGICALLY ordered -+#----------------------------------------------------------------------------- -+set(DCMQI_DEPENDENCIES -+ zlib -+ DCMTK -+ ITK -+ ) -+ -+if(SlicerExecutionModel_FOUND) -+ list(APPEND DCMQI_DEPENDENCIES SlicerExecutionModel) -+ include(${SlicerExecutionModel_USE_FILE}) -+ find_package(SlicerExecutionModel NO_MODULE REQUIRED GenerateCLP) -+endif() -+ -+include(CMake/ctkBlockCheckDependencies.cmake) - - include(${CMAKE_CURRENT_SOURCE_DIR}/CMake/FindGit.cmake) - include(${CMAKE_CURRENT_SOURCE_DIR}/CMake/dcmqiMacroExtractRepositoryInfo.cmake) -@@ -255,7 +260,8 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/jsoncpp) - set(JSONCPP_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/jsoncpp/jsoncpp.cpp) - - add_subdirectory("libsrc") -- --add_subdirectory("apps") -- - add_subdirectory("doc") -+ -+if(SlicerExecutionModel_FOUND) -+ add_subdirectory("apps") -+endif() -diff --git a/jsoncpp/jsoncpp.cpp b/jsoncpp/jsoncpp.cpp -index dd2a1e3..d18ca40 100644 ---- a/jsoncpp/jsoncpp.cpp -+++ b/jsoncpp/jsoncpp.cpp -@@ -231,7 +231,7 @@ static int stackDepth_g = 0; // see readValue() - namespace Json { - - #if __GNUC__ >= 6 --typedef std::scoped_ptr const CharReaderPtr; -+typedef std::unique_ptr const CharReaderPtr; - #else - typedef std::auto_ptr CharReaderPtr; - #endif -@@ -3800,7 +3800,7 @@ Value& Path::make(Value& root) const { - namespace Json { - - #if __GNUC__ >= 6 --typedef std::scoped_ptr const StreamWriterPtr; -+typedef std::unique_ptr const StreamWriterPtr; - #else - typedef std::auto_ptr StreamWriterPtr; - #endif