diff --git a/Modules/ThirdParty/MINC/src/libminc/CMakeLists.txt b/Modules/ThirdParty/MINC/src/libminc/CMakeLists.txt index 82c05be3f87..305b2c634a0 100644 --- a/Modules/ThirdParty/MINC/src/libminc/CMakeLists.txt +++ b/Modules/ThirdParty/MINC/src/libminc/CMakeLists.txt @@ -7,7 +7,7 @@ PROJECT(LIBMINC) SET(LIBMINC_PACKAGE_VERSION_MAJOR 2) SET(LIBMINC_PACKAGE_VERSION_MINOR 4) -SET(LIBMINC_PACKAGE_VERSION_PATCH 03) +SET(LIBMINC_PACKAGE_VERSION_PATCH 04) SET(LIBMINC_SOVERSION "5.2.0") @@ -378,17 +378,36 @@ IF(LIBMINC_NIFTI_SUPPORT) SET(NIFTI_LIBRARIES ${NIFTI_LIBRARY} ${ZNZ_LIBRARY} ) + get_filename_component(NIFTI_LIBRARY_NAME "${NIFTI_LIBRARY}" NAME) + get_filename_component(ZNZ_LIBRARY_NAME "${ZNZ_LIBRARY}" NAME) + ELSE(LIBMINC_NIFTI_SUPPORT) SET(NIFTI_LIBRARIES ) + SET(NIFTI_LIBRARY ) + SET(ZNZ_LIBRARY ) + SET(NIFTI_LIBRARY_NAME ) + SET(ZNZ_LIBRARY_NAME ) ENDIF(LIBMINC_NIFTI_SUPPORT) +IF(NOT HDF5_LIBRARY AND HDF5_LIBRARIES) + SET(HDF5_LIBRARY ${HDF5_LIBRARIES}) +ENDIF() + +get_filename_component(HDF5_LIBRARY_NAME "${HDF5_LIBRARY}" NAME) +get_filename_component(ZLIB_LIBRARY_NAME "${ZLIB_LIBRARY}" NAME) + +SET(LIBMINC_LIBRARIES ${LIBMINC_LIBRARY} ${HDF5_LIBRARY} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY}) +SET(LIBMINC_LIBRARIES_CONFIG ${LIBMINC_LIBRARY} ${HDF5_LIBRARY_NAME} ${NIFTI_LIBRARY_NAME} ${ZNZ_LIBRARY_NAME} ${ZLIB_LIBRARY_NAME}) -SET(LIBMINC_LIBRARIES ${LIBMINC_LIBRARY} ${HDF5_LIBRARIES} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY}) -SET(LIBMINC_STATIC_LIBRARIES ${LIBMINC_LIBRARY_STATIC} ${HDF5_LIBRARIES} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY}) +SET(LIBMINC_STATIC_LIBRARIES ${LIBMINC_LIBRARY_STATIC} ${HDF5_LIBRARY} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY}) +SET(LIBMINC_STATIC_LIBRARIES_CONFIG ${LIBMINC_LIBRARY_STATIC} ${HDF5_LIBRARY_NAME} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY_NAME}) IF(UNIX) SET(LIBMINC_LIBRARIES ${LIBMINC_LIBRARIES} m dl ${RT_LIBRARY}) SET(LIBMINC_STATIC_LIBRARIES ${LIBMINC_STATIC_LIBRARIES} m dl ${RT_LIBRARY}) + + SET(LIBMINC_LIBRARIES_CONFIG ${LIBMINC_LIBRARIES_CONFIG} m dl ${RT_LIBRARY_NAME}) + SET(LIBMINC_STATIC_LIBRARIES_CONFIG ${LIBMINC_STATIC_LIBRARIES_CONFIG} m dl ${RT_LIBRARY_NAME}) ENDIF(UNIX) SET(minc_LIB_SRCS ${minc2_LIB_SRCS} ${minc_common_SRCS}) @@ -411,11 +430,14 @@ IF(NIFTI_FOUND AND NOT LIBMINC_USE_SYSTEM_NIFTI) ENDIF() -TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY} ${HDF5_LIBRARIES} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY} ${RT_LIBRARY}) # +TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY} ${HDF5_LIBRARY} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY} ${RT_LIBRARY}) # IF(LIBMINC_MINC1_SUPPORT) INCLUDE_DIRECTORIES(${NETCDF_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY} ${NETCDF_LIBRARY}) + get_filename_component(NETCDF_LIBRARY_NAME "${NETCDF_LIBRARY}" NAME) +ELSE(LIBMINC_MINC1_SUPPORT) + SET(NETCDF_LIBRARY_NAME ) ENDIF(LIBMINC_MINC1_SUPPORT) IF(NOT LIBMINC_USE_SYSTEM_NIFTI AND NOT LIBMINC_EXTERNALLY_CONFIGURED) @@ -425,7 +447,7 @@ ENDIF(NOT LIBMINC_USE_SYSTEM_NIFTI AND NOT LIBMINC_EXTERNALLY_CONFIGURED) #EXPORT(TARGETS ${LIBMINC_LIBRARY} FILE "${LIBMINC_EXPORTED_TARGETS}.cmake") IF(UNIX) - TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY} m dl ) + TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY} m dl ) #ITK: Skip static library build IF(0) @@ -447,6 +469,9 @@ SET_TARGET_PROPERTIES(${LIBMINC_LIBRARY} IF(LIBMINC_MINC1_SUPPORT) SET(LIBMINC_LIBRARIES ${LIBMINC_LIBRARIES} ${NETCDF_LIBRARY} ) SET(LIBMINC_STATIC_LIBRARIES ${LIBMINC_STATIC_LIBRARIES} ${NETCDF_LIBRARY} ) + + SET(LIBMINC_LIBRARIES_CONFIG ${LIBMINC_LIBRARIES_CONFIG} ${NETCDF_LIBRARY_NAME} ) + SET(LIBMINC_STATIC_LIBRARIES_CONFIG ${LIBMINC_STATIC_LIBRARIES_CONFIG} ${NETCDF_LIBRARY_NAME} ) ENDIF(LIBMINC_MINC1_SUPPORT) IF( LIBMINC_INSTALL_LIB_DIR ) @@ -470,7 +495,23 @@ IF(LIBMINC_MINC1_SUPPORT) ADD_SUBDIRECTORY( ezminc ) ENDIF(LIBMINC_MINC1_SUPPORT) -# config for the build directory +SET(EZMINC_LIBRARIES minc_io ${LIBMINC_LIBRARIES}) +SET(EZMINC_LIBRARIES_CONFIG minc_io ${LIBMINC_LIBRARIES_CONFIG}) + +# config for install dir +SET(LIBMINC_USE_FILE_CONFIG "\${LIBMINC_INSTALL_PREFIX}/lib/UseLIBMINC.cmake" ) +SET(LIBMINC_INCLUDE_DIRS_CONFIG "\${LIBMINC_INSTALL_PREFIX}/include" ) +SET(LIBMINC_LIBRARY_DIRS_CONFIG "\${LIBMINC_INSTALL_PREFIX}/lib" ) +SET(LIBMINC_STATIC_LIBRARIES_CONFIG "" ) +SET(VOLUME_IO_LIBRARY_STATIC "") + +configure_file(LIBMINCConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${LIBMINC_EXTERNAL_LIB_PREFIX}LIBMINCConfig.cmake @ONLY ) + +configure_file(UseLIBMINC.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Use${LIBMINC_EXTERNAL_LIB_PREFIX}LIBMINC.cmake @ONLY) + +# configure for build dir SET(LIBMINC_USE_FILE_CONFIG ${CMAKE_CURRENT_BINARY_DIR}/UseLIBMINC.cmake) SET(LIBMINC_INCLUDE_DIRS_CONFIG @@ -479,7 +520,6 @@ SET(LIBMINC_INCLUDE_DIRS_CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/libsrc2 ${CMAKE_CURRENT_SOURCE_DIR}/volume_io/Include ) - IF(LIBMINC_MINC1_SUPPORT) SET(LIBMINC_INCLUDE_DIRS_CONFIG ${LIBMINC_INCLUDE_DIRS_CONFIG} @@ -488,10 +528,10 @@ IF(LIBMINC_MINC1_SUPPORT) ) ENDIF(LIBMINC_MINC1_SUPPORT) -SET(EZMINC_LIBRARIES minc_io ${LIBMINC_LIBRARIES}) SET(LIBMINC_LIBRARY_DIRS_CONFIG ${CMAKE_CURRENT_BINARY_DIR}) SET(LIBMINC_LIBRARIES_CONFIG ${LIBMINC_LIBRARIES}) SET(LIBMINC_STATIC_LIBRARIES_CONFIG ${LIBMINC_STATIC_LIBRARIES}) +SET(EZMINC_LIBRARIES_CONFIG ${EZMINC_LIBRARIES}) IF(LIBMINC_MINC1_SUPPORT) SET(LIBMINC_LIBRARY_DIRS_CONFIG ${LIBMINC_LIBRARY_DIRS_CONFIG} ${CMAKE_CURRENT_BINARY_DIR}/ezminc) @@ -503,48 +543,15 @@ configure_file(LIBMINCConfig.cmake.in configure_file(UseLIBMINC.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/UseLIBMINC.cmake @ONLY) -# config for install dir -SET(LIBMINC_USE_FILE_CONFIG "${CMAKE_INSTALL_PREFIX}/${LIBMINC_INSTALL_LIB_DIR}/Use${LIBMINC_EXTERNAL_LIB_PREFIX}LIBMINC.cmake") -SET(LIBMINC_INCLUDE_DIRS_CONFIG ${CMAKE_INSTALL_PREFIX}/${LIBMINC_INSTALL_INCLUDE_DIR} ) -SET(LIBMINC_LIBRARY_DIRS_CONFIG ${CMAKE_INSTALL_PREFIX}/${LIBMINC_INSTALL_LIB_DIR}) -SET(LIBMINC_STATIC_LIBRARIES_CONFIG "") -SET(VOLUME_IO_LIBRARY_STATIC "") - -#fix for superbuild install -IF(SUPERBUILD_STAGING_PREFIX) - STRING(REPLACE "${SUPERBUILD_STAGING_PREFIX}/" "" LIBMINC_INCLUDE_DIRS_CONFIG "${LIBMINC_INCLUDE_DIRS_CONFIG}") - STRING(REPLACE "${SUPERBUILD_STAGING_PREFIX}/" "" LIBMINC_LIBRARY_DIRS_CONFIG "${LIBMINC_LIBRARY_DIRS_CONFIG}") - STRING(REPLACE "${SUPERBUILD_STAGING_PREFIX}/" "" LIBMINC_LIBRARIES_CONFIG "${LIBMINC_LIBRARIES_CONFIG}") - STRING(REPLACE "${SUPERBUILD_STAGING_PREFIX}/" "" EZMINC_LIBRARIES "${EZMINC_LIBRARIES}") - STRING(REPLACE "${SUPERBUILD_STAGING_PREFIX}/" "" NETCDF_INCLUDE_DIR "${NETCDF_INCLUDE_DIR}") - STRING(REPLACE "${SUPERBUILD_STAGING_PREFIX}/" "" HDF5_INCLUDE_DIR "${HDF5_INCLUDE_DIR}") - STRING(REPLACE "${SUPERBUILD_STAGING_PREFIX}/" "" HDF5_INCLUDE_DIRS "${HDF5_INCLUDE_DIRS}") - STRING(REPLACE "${SUPERBUILD_STAGING_PREFIX}/" "" NIFTI_INCLUDE_DIR "${NIFTI_INCLUDE_DIR}") - STRING(REPLACE "${SUPERBUILD_STAGING_PREFIX}/" "" NETCDF_LIBRARY "${NETCDF_LIBRARY}") - STRING(REPLACE "${SUPERBUILD_STAGING_PREFIX}/" "" HDF5_LIBRARY "${HDF5_LIBRARY}") - STRING(REPLACE "${SUPERBUILD_STAGING_PREFIX}/" "" HDF5_LIBRARIES "${HDF5_LIBRARIES}") - STRING(REPLACE "${SUPERBUILD_STAGING_PREFIX}/" "" NIFTI_LIBRARY "${NIFTI_LIBRARY}") - STRING(REPLACE "${SUPERBUILD_STAGING_PREFIX}/" "" ZNZ_LIBRARY "${ZNZ_LIBRARY}") - STRING(REPLACE "${SUPERBUILD_STAGING_PREFIX}/" "" ZLIB_LIBRARY "${ZLIB_LIBRARY}") - STRING(REPLACE "${SUPERBUILD_STAGING_PREFIX}/" "" ZLIB_LIBRARIES "${ZLIB_LIBRARIES}") -ENDIF(SUPERBUILD_STAGING_PREFIX) - -configure_file(LIBMINCConfig.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${LIBMINC_EXTERNAL_LIB_PREFIX}LIBMINCConfig.cmake @ONLY ) - -configure_file(UseLIBMINC.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Use${LIBMINC_EXTERNAL_LIB_PREFIX}LIBMINC.cmake @ONLY) IF(LIBMINC_INSTALL_LIB_DIR AND NOT LIBMINC_INSTALL_NO_DEVELOPMENT) - INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Use${LIBMINC_EXTERNAL_LIB_PREFIX}LIBMINC.cmake ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${LIBMINC_EXTERNAL_LIB_PREFIX}LIBMINCConfig.cmake DESTINATION - ${LIBMINC_INSTALL_LIB_DIR} + ${LIBMINC_INSTALL_LIB_DIR}/cmake COMPONENT Development) - ENDIF(LIBMINC_INSTALL_LIB_DIR AND NOT LIBMINC_INSTALL_NO_DEVELOPMENT) # testing diff --git a/Modules/ThirdParty/MINC/src/libminc/LIBMINCConfig.cmake.in b/Modules/ThirdParty/MINC/src/libminc/LIBMINCConfig.cmake.in index 7790597b226..f8f7eb6d8c3 100644 --- a/Modules/ThirdParty/MINC/src/libminc/LIBMINCConfig.cmake.in +++ b/Modules/ThirdParty/MINC/src/libminc/LIBMINCConfig.cmake.in @@ -1,7 +1,8 @@ # LIBMINC CMake configuration file + +get_filename_component(LIBMINC_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE) get_filename_component(LIBMINC_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH ) -get_filename_component(LIBMINC_INSTALL_PREFIX "${LIBMINC_CMAKE_DIR}" PATH) set(HAVE_MINC2 1) set(HAVE_EZMINC @LIBMINC_MINC1_SUPPORT@) @@ -9,26 +10,26 @@ set(HAVE_MINC1 @LIBMINC_MINC1_SUPPORT@) set(LIBMINC_NIFTI_SUPPORT @LIBMINC_NIFTI_SUPPORT@) -set(NETCDF_INCLUDE_DIR "@NETCDF_INCLUDE_DIR@") -set(HDF5_INCLUDE_DIR "@HDF5_INCLUDE_DIR@") -set(NIFTI_INCLUDE_DIR "@NIFTI_INCLUDE_DIR@") +#set(NETCDF_INCLUDE_DIR "@NETCDF_INCLUDE_DIR@") +#set(HDF5_INCLUDE_DIR "@HDF5_INCLUDE_DIR@") +#set(NIFTI_INCLUDE_DIR "@NIFTI_INCLUDE_DIR@") -set(NETCDF_LIBRARY "@NETCDF_LIBRARY@") -set(HDF5_LIBRARY "@HDF5_LIBRARY@") -set(ZLIB_LIBRARY "@ZLIB_LIBRARY@") -set(ZLIB_LIBRARIES "@ZLIB_LIBRARY@") -set(NIFTI_LIBRARIES "@NIFTI_LIBRARIES@") +#set(NETCDF_LIBRARY "@NETCDF_LIBRARY@") +#set(HDF5_LIBRARY "@HDF5_LIBRARY@") +#set(ZLIB_LIBRARY "@ZLIB_LIBRARY@") +#set(ZLIB_LIBRARIES "@ZLIB_LIBRARY@") +#set(NIFTI_LIBRARIES "@NIFTI_LIBRARIES@") -set(LIBMINC_INCLUDE_DIRS "@LIBMINC_INCLUDE_DIRS_CONFIG@") -set(LIBMINC_LIBRARY_DIRS "@LIBMINC_LIBRARY_DIRS_CONFIG@") -set(LIBMINC_USE_FILE "@LIBMINC_USE_FILE_CONFIG@") -set(LIBMINC_LIBRARIES "@LIBMINC_LIBRARIES_CONFIG@") +set(LIBMINC_INCLUDE_DIRS "@LIBMINC_INCLUDE_DIRS_CONFIG@") # ${LIBMINC_INSTALL_PREFIX}/include +set(LIBMINC_LIBRARY_DIRS "@LIBMINC_LIBRARY_DIRS_CONFIG@") # ${LIBMINC_INSTALL_PREFIX}/lib +set(LIBMINC_USE_FILE "@LIBMINC_USE_FILE_CONFIG@") # ${LIBMINC_INSTALL_PREFIX}/lib/UseLIBMINC.cmake -set(EZMINC_LIBRARIES "@EZMINC_LIBRARIES@") -set(VOLUME_IO_LIBRARIES "@VOLUME_IO_LIBRARY@") +set(LIBMINC_LIBRARIES "@LIBMINC_LIBRARIES_CONFIG@") +set(VOLUME_IO_LIBRARIES "@LIBMINC_LIBRARIES_CONFIG@") +set(EZMINC_LIBRARIES "@EZMINC_LIBRARIES_CONFIG@") set(LIBMINC_STATIC_LIBRARIES "@LIBMINC_STATIC_LIBRARIES_CONFIG@") -set(VOLUME_IO_STATIC_LIBRARIES "@VOLUME_IO_LIBRARY_STATIC@") +set(VOLUME_IO_STATIC_LIBRARIES "@LIBMINC_STATIC_LIBRARIES_CONFIG@") set( LIBMINC_FOUND 1 ) diff --git a/Modules/ThirdParty/MINC/src/libminc/libsrc/hdf_convenience.c b/Modules/ThirdParty/MINC/src/libminc/libsrc/hdf_convenience.c index ff4db288532..657188f21cf 100644 --- a/Modules/ThirdParty/MINC/src/libminc/libsrc/hdf_convenience.c +++ b/Modules/ThirdParty/MINC/src/libminc/libsrc/hdf_convenience.c @@ -16,6 +16,9 @@ /* Make 1.8.x compatible files if building with 1.10.x */ #if (H5_VERS_MAJOR==1)&&(H5_VERS_MINOR<10) #define H5F_LIBVER_V18 H5F_LIBVER_LATEST +#elif (H5_VERS_MAJOR==1)&&(H5_VERS_MINOR==10)&&(H5_VERS_RELEASE<2) +#error The selected version of HDF5 library does not support setting backwards compatibility at run-time.\ + Please use a different version of HDF5 #endif /************************************************************************ diff --git a/Modules/ThirdParty/MINC/src/libminc/libsrc2/volume.c b/Modules/ThirdParty/MINC/src/libminc/libsrc2/volume.c index 038bb207869..0b2737dd077 100644 --- a/Modules/ThirdParty/MINC/src/libminc/libsrc2/volume.c +++ b/Modules/ThirdParty/MINC/src/libminc/libsrc2/volume.c @@ -35,6 +35,9 @@ /* Build with 1.8.x support if using 1.10.x */ #if (H5_VERS_MAJOR==1)&&(H5_VERS_MINOR<10) #define H5F_LIBVER_V18 H5F_LIBVER_LATEST +#elif (H5_VERS_MAJOR==1)&&(H5_VERS_MINOR==10)&&(H5_VERS_RELEASE<2) +#error The selected version of HDF5 library does not support setting backwards compatibility at run-time.\ + Please use a different version of HDF5 #endif /*Used to optimize chunking size for faster MINC1 API access*/