Loading .travis.yml 0 → 100644 +24 −0 Original line number Diff line number Diff line sudo: false language: c os: - linux - osx compiler: - gcc before_install: ./brew/brew_install.sh addons: apt: packages: - libnetcdf-dev - libhdf5-serial-dev script: - cmake -DCMAKE_BUILD_TYPE:STRING=Release -DLIBMINC_MINC1_SUPPORT:BOOL=OFF -DBUILD_TESTING:BOOL=ON - make - make test - cmake -DCMAKE_BUILD_TYPE:STRING=Release -DLIBMINC_MINC1_SUPPORT:BOOL=ON -DBUILD_TESTING:BOOL=ON - make - make test CMakeLists.txt +127 −41 Original line number Diff line number Diff line Loading @@ -6,10 +6,10 @@ PROJECT(LIBMINC) SET(LIBMINC_PACKAGE_VERSION_MAJOR 2) SET(LIBMINC_PACKAGE_VERSION_MINOR 3) SET(LIBMINC_PACKAGE_VERSION_PATCH 00) SET(LIBMINC_PACKAGE_VERSION_MINOR 4) SET(LIBMINC_PACKAGE_VERSION_PATCH 03) SET(LIBMINC_SOVERSION "4.0.0") SET(LIBMINC_SOVERSION "5.2.0") SET(LIBMINC_PACKAGE "libminc") SET(LIBMINC_PACKAGE_BUGREPORT "a.janke@gmail.com") Loading @@ -22,7 +22,11 @@ INCLUDE(CTest) ENABLE_TESTING() CMAKE_MINIMUM_REQUIRED(VERSION 2.6) CMAKE_MINIMUM_REQUIRED(VERSION 2.8) IF( POLICY CMP0063 ) CMAKE_POLICY(SET CMP0063 NEW) ENDIF() IF(MINC_TOOLKIT_BUILD) SET(LIBMINC_EXTERNALLY_CONFIGURED ON) Loading @@ -46,6 +50,7 @@ IF(NOT LIBMINC_EXTERNALLY_CONFIGURED) OPTION(LIBMINC_MINC1_SUPPORT "Support minc1 file format, requires NETCDF" OFF) OPTION(LIBMINC_BUILD_EZMINC_EXAMPLES "Build EZminc examples" OFF) OPTION(LIBMINC_USE_SYSTEM_NIFTI "Use system NIfTI-1 library" OFF) SET (LIBMINC_EXPORTED_TARGETS "LIBMINC-targets") SET (LIBMINC_INSTALL_BIN_DIR bin) Loading @@ -59,12 +64,26 @@ IF(NOT LIBMINC_EXTERNALLY_CONFIGURED) # external packages FIND_PACKAGE(ZLIB REQUIRED) FIND_PACKAGE(HDF5 REQUIRED) SET(HDF5_NO_FIND_PACKAGE_CONFIG_FILE ON) FIND_PACKAGE(HDF5 REQUIRED COMPONENTS C ) IF (LIBMINC_USE_SYSTEM_NIFTI) FIND_PACKAGE(NIFTI) ELSE(LIBMINC_USE_SYSTEM_NIFTI) INCLUDE(ExternalProject) INCLUDE(BuildNIFTI) build_nifti(${CMAKE_INSTALL_PREFIX} ${CMAKE_BINARY_DIR}/external) ENDIF(LIBMINC_USE_SYSTEM_NIFTI) SET(HAVE_ZLIB ON) ELSE(NOT LIBMINC_EXTERNALLY_CONFIGURED) #TODO: set paths for HDF5 etc ENDIF(NOT LIBMINC_EXTERNALLY_CONFIGURED) IF(NOT DEFINED CMAKE_MACOSX_RPATH) set(CMAKE_MACOSX_RPATH ON) ENDIF(NOT DEFINED CMAKE_MACOSX_RPATH) # Configure libminc IF(LIBMINC_BUILD_SHARED_LIBS) SET(LIBRARY_TYPE SHARED) Loading @@ -86,6 +105,8 @@ ENDIF(UNIX) # check for prereqs INCLUDE(CheckFunctionExists) INCLUDE(CheckSymbolExists) INCLUDE(CheckLibraryExists) CHECK_FUNCTION_EXISTS(mkstemp HAVE_MKSTEMP) CHECK_FUNCTION_EXISTS(tmpnam HAVE_TMPNAM) Loading @@ -102,17 +123,32 @@ CHECK_FUNCTION_EXISTS(strerror HAVE_STRERROR) CHECK_FUNCTION_EXISTS(sysconf HAVE_SYSCONF) CHECK_FUNCTION_EXISTS(system HAVE_SYSTEM) if(NOT MSVC) set(CMAKE_REQUIRED_LIBRARIES m) endif() set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE=1 ) CHECK_SYMBOL_EXISTS(rint "math.h" HAVE_RINT) CHECK_SYMBOL_EXISTS(copysign "math.h" HAVE_COPYSIGN) CHECK_SYMBOL_EXISTS(round "math.h" HAVE_ROUND) unset(CMAKE_REQUIRED_LIBRARIES) unset(CMAKE_REQUIRED_DEFINITIONS) CHECK_FUNCTION_EXISTS(srand48 HAVE_SRAND48) CHECK_FUNCTION_EXISTS(drand48 HAVE_DRAND48) CHECK_FUNCTION_EXISTS(sleep HAVE_SLEEP) CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY) INCLUDE(CheckLibraryExists) CHECK_LIBRARY_EXISTS(rt clock_gettime "time.h" HAVE_CLOCK_GETTIME) IF(HAVE_CLOCK_GETTIME) CHECK_LIBRARY_EXISTS(rt clock_gettime "time.h" HAVE_CLOCK_GETTIME_RT) IF(HAVE_CLOCK_GETTIME_RT) SET(RT_LIBRARY "rt") ENDIF(HAVE_CLOCK_GETTIME) SET(HAVE_CLOCK_GETTIME ON) ELSE(HAVE_CLOCK_GETTIME_RT) CHECK_SYMBOL_EXISTS(clock_gettime "time.h" HAVE_CLOCK_GETTIME) ENDIF(HAVE_CLOCK_GETTIME_RT) INCLUDE(CheckIncludeFiles) CHECK_INCLUDE_FILES(float.h HAVE_FLOAT_H) Loading @@ -122,6 +158,7 @@ CHECK_INCLUDE_FILES(sys/stat.h HAVE_SYS_STAT_H) CHECK_INCLUDE_FILES(sys/types.h HAVE_SYS_TYPES_H) CHECK_INCLUDE_FILES(sys/wait.h HAVE_SYS_WAIT_H) CHECK_INCLUDE_FILES(sys/time.h HAVE_SYS_TIME_H) CHECK_INCLUDE_FILES(time.h HAVE_TIME_H) CHECK_INCLUDE_FILES(values.h HAVE_VALUES_H) CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H) CHECK_INCLUDE_FILES(dirent.h HAVE_DIRENT_H) Loading @@ -134,10 +171,14 @@ CHECK_INCLUDE_FILES(inttypes.h HAVE_INTTYPES_H) CHECK_INCLUDE_FILES(string.h HAVE_STRING_H) CHECK_INCLUDE_FILES(strings.h HAVE_STRINGS_H) CHECK_INCLUDE_FILES(pwd.h HAVE_PWD_H) CHECK_INCLUDE_FILES(sys/select.h HAVE_SYS_SELECT_H) ADD_DEFINITIONS(-DHAVE_CONFIG_H) ADD_DEFINITIONS(-DMINC2=1) IF(NOT APPLE) ADD_DEFINITIONS(-D_XOPEN_SOURCE=500) ENDIF(NOT APPLE) # aliases SET(VERSION "${LIBMINC_EXTERNAL_LIB_PREFIX}${LIBMINC_PACKAGE_VERSION}") SET(HAVE_MINC1 ${LIBMINC_MINC1_SUPPORT}) Loading @@ -157,6 +198,15 @@ IF(LIBMINC_BUILD_EZMINC) ) ENDIF(LIBMINC_BUILD_EZMINC) IF(NIFTI_FOUND) SET(LIBMINC_NIFTI_SUPPORT ON) SET(LIBMINC_NIFTI_SOURCES volume_io/Volumes/input_nifti.c volume_io/Volumes/input_mgh.c volume_io/Volumes/input_nrrd.c ) ENDIF(NIFTI_FOUND) # config files for build CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h @ONLY) Loading @@ -167,38 +217,46 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/libcommon ${CMAKE_CURRENT_SOURCE_DIR}/libsrc2 ${CMAKE_CURRENT_SOURCE_DIR}/libsrc ${CMAKE_CURRENT_SOURCE_DIR}/volume_io/Include ${CMAKE_CURRENT_SOURCE_DIR}/ezminc ${CMAKE_CURRENT_SOURCE_DIR}/nifti ${HDF5_INCLUDE_DIR} ${HDF5_INCLUDE_DIRS} ) IF(LIBMINC_NIFTI_SUPPORT) INCLUDE_DIRECTORIES( ${NIFTI_INCLUDE_DIR} ) ENDIF(LIBMINC_NIFTI_SUPPORT) SET(minc_common_SRCS libsrc/time_stamp.c libsrc/read_file_names.c libsrc/ParseArgv.c libsrc/restructure.c libcommon/minc2_error.c libcommon/minc_config.c libcommon/minc_error.c libcommon/ParseArgv.c libcommon/read_file_names.c libcommon/restructure.c libcommon/time_stamp.c ) SET(minc_common_HEADERS libsrc/time_stamp.h libsrc/ParseArgv.h libsrc/read_file_names.h libsrc/restructure.h volume_io/Include/volume_io.h nifti/nifti1.h nifti/nifti1_io.h nifti/znzlib.h libcommon/minc2_error.h libcommon/minc_config.h libcommon/minc_error.h libcommon/ParseArgv.h libcommon/read_file_names.h libcommon/restructure.h libcommon/time_stamp.h libcommon/minc_common_defs.h volume_io/Include/volume_io.h # VF: WTF? ) # some variables SET(minc1_LIB_SRCS libsrc/dim_conversion.c libsrc/image_conversion.c libsrc/minc_convenience.c libsrc/minc_error.c libsrc/nd_loop.c libsrc/netcdf_convenience.c libsrc/value_conversion.c Loading Loading @@ -232,7 +290,6 @@ SET(minc2_LIB_SRCS libsrc2/valid.c libsrc2/volprops.c libsrc2/volume.c libsrc2/minc2_error.c ) SET(minc2_HEADERS Loading @@ -240,7 +297,6 @@ SET(minc2_HEADERS libsrc2/minc2_defs.h libsrc2/minc2_structs.h libsrc2/minc2_api.h libsrc2/minc2_error.h ) # volume_io2 Loading Loading @@ -281,12 +337,16 @@ SET(volume_io_LIB_SRCS volume_io/Volumes/volumes.c volume_io/Volumes/input_mnc2.c volume_io/Volumes/output_mnc2.c volume_io/Volumes/input_mgh.c volume_io/Volumes/input_nifti.c nifti/nifti1_io.c nifti/znzlib.c ) IF(LIBMINC_NIFTI_SUPPORT) SET(volume_io_LIB_SRCS ${volume_io_LIB_SRCS} ${LIBMINC_NIFTI_SOURCES} ) ENDIF(LIBMINC_NIFTI_SUPPORT) SET(volume_io_HEADERS volume_io/Include/volume_io/alloc.h volume_io/Include/volume_io/arrays.h Loading Loading @@ -314,12 +374,21 @@ ELSE(LIBMINC_BUILD_SHARED_LIBS) SET(LIBMINC_LIBRARY_STATIC ${LIBMINC_LIBRARY}) ENDIF(LIBMINC_BUILD_SHARED_LIBS) SET(LIBMINC_LIBRARIES ${LIBMINC_LIBRARY} ${HDF5_LIBRARY} ${ZLIB_LIBRARY} ${RT_LIBRARY}) SET(LIBMINC_STATIC_LIBRARIES ${LIBMINC_LIBRARY_STATIC} ${HDF5_LIBRARY} ${ZLIB_LIBRARY} ${RT_LIBRARY}) IF(LIBMINC_NIFTI_SUPPORT) SET(NIFTI_LIBRARIES ${NIFTI_LIBRARY} ${ZNZ_LIBRARY} ) ELSE(LIBMINC_NIFTI_SUPPORT) SET(NIFTI_LIBRARIES ) ENDIF(LIBMINC_NIFTI_SUPPORT) SET(LIBMINC_LIBRARIES ${LIBMINC_LIBRARY} ${HDF5_LIBRARIES} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY}) SET(LIBMINC_STATIC_LIBRARIES ${LIBMINC_LIBRARY_STATIC} ${HDF5_LIBRARIES} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY}) IF(UNIX) SET(LIBMINC_LIBRARIES ${LIBMINC_LIBRARIES} m dl) SET(LIBMINC_STATIC_LIBRARIES ${LIBMINC_STATIC_LIBRARIES} m dl) SET(LIBMINC_LIBRARIES ${LIBMINC_LIBRARIES} m dl ${RT_LIBRARY}) SET(LIBMINC_STATIC_LIBRARIES ${LIBMINC_STATIC_LIBRARIES} m dl ${RT_LIBRARY}) ENDIF(UNIX) SET(minc_LIB_SRCS ${minc2_LIB_SRCS} ${minc_common_SRCS}) Loading @@ -333,14 +402,26 @@ ENDIF(LIBMINC_MINC1_SUPPORT) # Keep this variable for compatibility SET(VOLUME_IO_LIBRARY ${LIBMINC_EXTERNAL_LIB_PREFIX}minc2) SET(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}) ADD_LIBRARY(${LIBMINC_LIBRARY} ${LIBRARY_TYPE} ${minc_LIB_SRCS} ${minc_HEADERS} ${volume_io_LIB_SRCS} ${volume_io_HEADERS} ) TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY} ${HDF5_LIBRARY} ${ZLIB_LIBRARY} ${RT_LIBRARY}) # IF(NIFTI_FOUND AND NOT LIBMINC_USE_SYSTEM_NIFTI) ADD_DEPENDENCIES(${LIBMINC_LIBRARY} NIFTI) ENDIF() TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY} ${HDF5_LIBRARIES} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY} ${RT_LIBRARY}) # IF(LIBMINC_MINC1_SUPPORT) INCLUDE_DIRECTORIES(${NETCDF_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY} ${NETCDF_LIBRARY}) ENDIF(LIBMINC_MINC1_SUPPORT) IF(NOT LIBMINC_USE_SYSTEM_NIFTI AND NOT LIBMINC_EXTERNALLY_CONFIGURED) ADD_DEPENDENCIES(minc2 NIFTI) ENDIF(NOT LIBMINC_USE_SYSTEM_NIFTI AND NOT LIBMINC_EXTERNALLY_CONFIGURED) EXPORT(TARGETS ${LIBMINC_LIBRARY} FILE "${LIBMINC_EXPORTED_TARGETS}.cmake") IF(UNIX) Loading @@ -348,7 +429,7 @@ IF(UNIX) IF(LIBMINC_BUILD_SHARED_LIBS) ADD_LIBRARY(${LIBMINC_LIBRARY_STATIC} STATIC ${minc_LIB_SRCS} ${minc_HEADERS} ${volume_io_LIB_SRCS} ${volume_io_HEADERS} ) TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY_STATIC} ${HDF5_LIBRARY} ${ZLIB_LIBRARY} ${RT_LIBRARY} m dl ) TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY_STATIC} ${HDF5_LIBRARY} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY} ${RT_LIBRARY} m dl ) IF(LIBMINC_MINC1_SUPPORT) TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY} ${NETCDF_LIBRARY}) ENDIF(LIBMINC_MINC1_SUPPORT) Loading Loading @@ -390,9 +471,9 @@ SET(LIBMINC_USE_FILE_CONFIG ${CMAKE_CURRENT_BINARY_DIR}/UseLIBMINC.cmake) SET(LIBMINC_INCLUDE_DIRS_CONFIG ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/libcommon ${CMAKE_CURRENT_SOURCE_DIR}/libsrc2 ${CMAKE_CURRENT_SOURCE_DIR}/volume_io/Include ${CMAKE_CURRENT_SOURCE_DIR}/nifti ) IF(LIBMINC_MINC1_SUPPORT) Loading Loading @@ -433,8 +514,13 @@ IF(SUPERBUILD_STAGING_PREFIX) 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) Loading ChangeLog +34 −1 Original line number Diff line number Diff line 2016-05-05 Robert D. Vincent <robert.d.vincent@mcgill.ca> * libsrc/minc_simple.c, libsrc/minc_simple.h: Improved the usefulness of minc_get_world_transform() and added minc_transform_to_world(). 2016-02-09 Robert D. Vincent <robert.d.vincent@mcgill.ca> * libsrc2/dimension.c, libsrc2/volume.c, testdir/minc2-dimension-test.c: Existing code did not properly implement miset_dimension_widths() and miget_dimension_widths(). 2015-11-16 Robert D. Vincent <robert.d.vincent@mcgill.ca> * volume_io/Volumes/volumes.c, volume_io/Include/volume_io/vol_io_protoypes.h: Added copy_volume_new_type() and declared that get_volume_total_n_voxels() returns size_t. * testdir/volume_test.c: Created a simple test for volume functions. * CMakeLists.txt: Updated LIBMINC_SOVERSION 2015-10-14 Robert D. Vincent <robert.d.vincent@mcgill.ca> * volume_io/Volumes/input_mgh.c: Fix loading of time-varying MGZ files. 2015-10-07 Robert D. Vincent <robert.d.vincent@mcgill.ca> * libsrc2/m2util.c, libsrc2/volume.c: Fix improper handling of label volumes on big-endian architectures. -- Release of minc 2.3.00 -- 2015-10-01 Vladimir S. FONOV <vladimir.fonov@gmail.com> * Added new configuration environment variable MINC_FILE_CACHE_MB, it specifies (in megabytes) maximum per file cache for reading MINC2 files default value is 100 Mb. **WARNING** specifying value of 0 will significantly degrade performance on compressed minc2 files. * Added new configuration environment variable MINC_CHECKSUM, when set to 1 will enable FLETCHER32 checksum in new MINC2 files, but only when chunking is enabled 2015-09-11 Robert D. Vincent <robert.d.vincent@mcgill.ca> * Remove autoconf/automake support. Loading LIBMINCConfig.cmake.in +5 −0 Original line number Diff line number Diff line Loading @@ -7,12 +7,17 @@ set(HAVE_MINC2 1) set(HAVE_EZMINC @LIBMINC_MINC1_SUPPORT@) 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_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@") Loading README +25 −1 Original line number Diff line number Diff line Loading @@ -78,8 +78,32 @@ MINC_LOGFILE = [+]<pathname>|stdout|- MINC_LOGLEVEL = 0-4 # Maximum memory buffer, used in some minc programs # MINC_MAX_FILE_BUFFER_KB = <N> # Maximum allocated memory, used in some minc programs # MINC_MAX_MEMORY_KB = <N> # Memory cache for MINC2 files, per open file # MINC_FILE_CACHE_MB = <N> # Creation of HDF5 checksums for the volume, only works for MINC2 # file format # default 0 # MINC_CHECKSUM = {1,0} # Prefer using MINC2 API inside Volume IO # default 0 # MINC_PREFER_V2_API = {1,0} DOCUMENTATION ------------- http://en.wikibooks.org/wiki/MINC Loading
.travis.yml 0 → 100644 +24 −0 Original line number Diff line number Diff line sudo: false language: c os: - linux - osx compiler: - gcc before_install: ./brew/brew_install.sh addons: apt: packages: - libnetcdf-dev - libhdf5-serial-dev script: - cmake -DCMAKE_BUILD_TYPE:STRING=Release -DLIBMINC_MINC1_SUPPORT:BOOL=OFF -DBUILD_TESTING:BOOL=ON - make - make test - cmake -DCMAKE_BUILD_TYPE:STRING=Release -DLIBMINC_MINC1_SUPPORT:BOOL=ON -DBUILD_TESTING:BOOL=ON - make - make test
CMakeLists.txt +127 −41 Original line number Diff line number Diff line Loading @@ -6,10 +6,10 @@ PROJECT(LIBMINC) SET(LIBMINC_PACKAGE_VERSION_MAJOR 2) SET(LIBMINC_PACKAGE_VERSION_MINOR 3) SET(LIBMINC_PACKAGE_VERSION_PATCH 00) SET(LIBMINC_PACKAGE_VERSION_MINOR 4) SET(LIBMINC_PACKAGE_VERSION_PATCH 03) SET(LIBMINC_SOVERSION "4.0.0") SET(LIBMINC_SOVERSION "5.2.0") SET(LIBMINC_PACKAGE "libminc") SET(LIBMINC_PACKAGE_BUGREPORT "a.janke@gmail.com") Loading @@ -22,7 +22,11 @@ INCLUDE(CTest) ENABLE_TESTING() CMAKE_MINIMUM_REQUIRED(VERSION 2.6) CMAKE_MINIMUM_REQUIRED(VERSION 2.8) IF( POLICY CMP0063 ) CMAKE_POLICY(SET CMP0063 NEW) ENDIF() IF(MINC_TOOLKIT_BUILD) SET(LIBMINC_EXTERNALLY_CONFIGURED ON) Loading @@ -46,6 +50,7 @@ IF(NOT LIBMINC_EXTERNALLY_CONFIGURED) OPTION(LIBMINC_MINC1_SUPPORT "Support minc1 file format, requires NETCDF" OFF) OPTION(LIBMINC_BUILD_EZMINC_EXAMPLES "Build EZminc examples" OFF) OPTION(LIBMINC_USE_SYSTEM_NIFTI "Use system NIfTI-1 library" OFF) SET (LIBMINC_EXPORTED_TARGETS "LIBMINC-targets") SET (LIBMINC_INSTALL_BIN_DIR bin) Loading @@ -59,12 +64,26 @@ IF(NOT LIBMINC_EXTERNALLY_CONFIGURED) # external packages FIND_PACKAGE(ZLIB REQUIRED) FIND_PACKAGE(HDF5 REQUIRED) SET(HDF5_NO_FIND_PACKAGE_CONFIG_FILE ON) FIND_PACKAGE(HDF5 REQUIRED COMPONENTS C ) IF (LIBMINC_USE_SYSTEM_NIFTI) FIND_PACKAGE(NIFTI) ELSE(LIBMINC_USE_SYSTEM_NIFTI) INCLUDE(ExternalProject) INCLUDE(BuildNIFTI) build_nifti(${CMAKE_INSTALL_PREFIX} ${CMAKE_BINARY_DIR}/external) ENDIF(LIBMINC_USE_SYSTEM_NIFTI) SET(HAVE_ZLIB ON) ELSE(NOT LIBMINC_EXTERNALLY_CONFIGURED) #TODO: set paths for HDF5 etc ENDIF(NOT LIBMINC_EXTERNALLY_CONFIGURED) IF(NOT DEFINED CMAKE_MACOSX_RPATH) set(CMAKE_MACOSX_RPATH ON) ENDIF(NOT DEFINED CMAKE_MACOSX_RPATH) # Configure libminc IF(LIBMINC_BUILD_SHARED_LIBS) SET(LIBRARY_TYPE SHARED) Loading @@ -86,6 +105,8 @@ ENDIF(UNIX) # check for prereqs INCLUDE(CheckFunctionExists) INCLUDE(CheckSymbolExists) INCLUDE(CheckLibraryExists) CHECK_FUNCTION_EXISTS(mkstemp HAVE_MKSTEMP) CHECK_FUNCTION_EXISTS(tmpnam HAVE_TMPNAM) Loading @@ -102,17 +123,32 @@ CHECK_FUNCTION_EXISTS(strerror HAVE_STRERROR) CHECK_FUNCTION_EXISTS(sysconf HAVE_SYSCONF) CHECK_FUNCTION_EXISTS(system HAVE_SYSTEM) if(NOT MSVC) set(CMAKE_REQUIRED_LIBRARIES m) endif() set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE=1 ) CHECK_SYMBOL_EXISTS(rint "math.h" HAVE_RINT) CHECK_SYMBOL_EXISTS(copysign "math.h" HAVE_COPYSIGN) CHECK_SYMBOL_EXISTS(round "math.h" HAVE_ROUND) unset(CMAKE_REQUIRED_LIBRARIES) unset(CMAKE_REQUIRED_DEFINITIONS) CHECK_FUNCTION_EXISTS(srand48 HAVE_SRAND48) CHECK_FUNCTION_EXISTS(drand48 HAVE_DRAND48) CHECK_FUNCTION_EXISTS(sleep HAVE_SLEEP) CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY) INCLUDE(CheckLibraryExists) CHECK_LIBRARY_EXISTS(rt clock_gettime "time.h" HAVE_CLOCK_GETTIME) IF(HAVE_CLOCK_GETTIME) CHECK_LIBRARY_EXISTS(rt clock_gettime "time.h" HAVE_CLOCK_GETTIME_RT) IF(HAVE_CLOCK_GETTIME_RT) SET(RT_LIBRARY "rt") ENDIF(HAVE_CLOCK_GETTIME) SET(HAVE_CLOCK_GETTIME ON) ELSE(HAVE_CLOCK_GETTIME_RT) CHECK_SYMBOL_EXISTS(clock_gettime "time.h" HAVE_CLOCK_GETTIME) ENDIF(HAVE_CLOCK_GETTIME_RT) INCLUDE(CheckIncludeFiles) CHECK_INCLUDE_FILES(float.h HAVE_FLOAT_H) Loading @@ -122,6 +158,7 @@ CHECK_INCLUDE_FILES(sys/stat.h HAVE_SYS_STAT_H) CHECK_INCLUDE_FILES(sys/types.h HAVE_SYS_TYPES_H) CHECK_INCLUDE_FILES(sys/wait.h HAVE_SYS_WAIT_H) CHECK_INCLUDE_FILES(sys/time.h HAVE_SYS_TIME_H) CHECK_INCLUDE_FILES(time.h HAVE_TIME_H) CHECK_INCLUDE_FILES(values.h HAVE_VALUES_H) CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H) CHECK_INCLUDE_FILES(dirent.h HAVE_DIRENT_H) Loading @@ -134,10 +171,14 @@ CHECK_INCLUDE_FILES(inttypes.h HAVE_INTTYPES_H) CHECK_INCLUDE_FILES(string.h HAVE_STRING_H) CHECK_INCLUDE_FILES(strings.h HAVE_STRINGS_H) CHECK_INCLUDE_FILES(pwd.h HAVE_PWD_H) CHECK_INCLUDE_FILES(sys/select.h HAVE_SYS_SELECT_H) ADD_DEFINITIONS(-DHAVE_CONFIG_H) ADD_DEFINITIONS(-DMINC2=1) IF(NOT APPLE) ADD_DEFINITIONS(-D_XOPEN_SOURCE=500) ENDIF(NOT APPLE) # aliases SET(VERSION "${LIBMINC_EXTERNAL_LIB_PREFIX}${LIBMINC_PACKAGE_VERSION}") SET(HAVE_MINC1 ${LIBMINC_MINC1_SUPPORT}) Loading @@ -157,6 +198,15 @@ IF(LIBMINC_BUILD_EZMINC) ) ENDIF(LIBMINC_BUILD_EZMINC) IF(NIFTI_FOUND) SET(LIBMINC_NIFTI_SUPPORT ON) SET(LIBMINC_NIFTI_SOURCES volume_io/Volumes/input_nifti.c volume_io/Volumes/input_mgh.c volume_io/Volumes/input_nrrd.c ) ENDIF(NIFTI_FOUND) # config files for build CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h @ONLY) Loading @@ -167,38 +217,46 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/libcommon ${CMAKE_CURRENT_SOURCE_DIR}/libsrc2 ${CMAKE_CURRENT_SOURCE_DIR}/libsrc ${CMAKE_CURRENT_SOURCE_DIR}/volume_io/Include ${CMAKE_CURRENT_SOURCE_DIR}/ezminc ${CMAKE_CURRENT_SOURCE_DIR}/nifti ${HDF5_INCLUDE_DIR} ${HDF5_INCLUDE_DIRS} ) IF(LIBMINC_NIFTI_SUPPORT) INCLUDE_DIRECTORIES( ${NIFTI_INCLUDE_DIR} ) ENDIF(LIBMINC_NIFTI_SUPPORT) SET(minc_common_SRCS libsrc/time_stamp.c libsrc/read_file_names.c libsrc/ParseArgv.c libsrc/restructure.c libcommon/minc2_error.c libcommon/minc_config.c libcommon/minc_error.c libcommon/ParseArgv.c libcommon/read_file_names.c libcommon/restructure.c libcommon/time_stamp.c ) SET(minc_common_HEADERS libsrc/time_stamp.h libsrc/ParseArgv.h libsrc/read_file_names.h libsrc/restructure.h volume_io/Include/volume_io.h nifti/nifti1.h nifti/nifti1_io.h nifti/znzlib.h libcommon/minc2_error.h libcommon/minc_config.h libcommon/minc_error.h libcommon/ParseArgv.h libcommon/read_file_names.h libcommon/restructure.h libcommon/time_stamp.h libcommon/minc_common_defs.h volume_io/Include/volume_io.h # VF: WTF? ) # some variables SET(minc1_LIB_SRCS libsrc/dim_conversion.c libsrc/image_conversion.c libsrc/minc_convenience.c libsrc/minc_error.c libsrc/nd_loop.c libsrc/netcdf_convenience.c libsrc/value_conversion.c Loading Loading @@ -232,7 +290,6 @@ SET(minc2_LIB_SRCS libsrc2/valid.c libsrc2/volprops.c libsrc2/volume.c libsrc2/minc2_error.c ) SET(minc2_HEADERS Loading @@ -240,7 +297,6 @@ SET(minc2_HEADERS libsrc2/minc2_defs.h libsrc2/minc2_structs.h libsrc2/minc2_api.h libsrc2/minc2_error.h ) # volume_io2 Loading Loading @@ -281,12 +337,16 @@ SET(volume_io_LIB_SRCS volume_io/Volumes/volumes.c volume_io/Volumes/input_mnc2.c volume_io/Volumes/output_mnc2.c volume_io/Volumes/input_mgh.c volume_io/Volumes/input_nifti.c nifti/nifti1_io.c nifti/znzlib.c ) IF(LIBMINC_NIFTI_SUPPORT) SET(volume_io_LIB_SRCS ${volume_io_LIB_SRCS} ${LIBMINC_NIFTI_SOURCES} ) ENDIF(LIBMINC_NIFTI_SUPPORT) SET(volume_io_HEADERS volume_io/Include/volume_io/alloc.h volume_io/Include/volume_io/arrays.h Loading Loading @@ -314,12 +374,21 @@ ELSE(LIBMINC_BUILD_SHARED_LIBS) SET(LIBMINC_LIBRARY_STATIC ${LIBMINC_LIBRARY}) ENDIF(LIBMINC_BUILD_SHARED_LIBS) SET(LIBMINC_LIBRARIES ${LIBMINC_LIBRARY} ${HDF5_LIBRARY} ${ZLIB_LIBRARY} ${RT_LIBRARY}) SET(LIBMINC_STATIC_LIBRARIES ${LIBMINC_LIBRARY_STATIC} ${HDF5_LIBRARY} ${ZLIB_LIBRARY} ${RT_LIBRARY}) IF(LIBMINC_NIFTI_SUPPORT) SET(NIFTI_LIBRARIES ${NIFTI_LIBRARY} ${ZNZ_LIBRARY} ) ELSE(LIBMINC_NIFTI_SUPPORT) SET(NIFTI_LIBRARIES ) ENDIF(LIBMINC_NIFTI_SUPPORT) SET(LIBMINC_LIBRARIES ${LIBMINC_LIBRARY} ${HDF5_LIBRARIES} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY}) SET(LIBMINC_STATIC_LIBRARIES ${LIBMINC_LIBRARY_STATIC} ${HDF5_LIBRARIES} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY}) IF(UNIX) SET(LIBMINC_LIBRARIES ${LIBMINC_LIBRARIES} m dl) SET(LIBMINC_STATIC_LIBRARIES ${LIBMINC_STATIC_LIBRARIES} m dl) SET(LIBMINC_LIBRARIES ${LIBMINC_LIBRARIES} m dl ${RT_LIBRARY}) SET(LIBMINC_STATIC_LIBRARIES ${LIBMINC_STATIC_LIBRARIES} m dl ${RT_LIBRARY}) ENDIF(UNIX) SET(minc_LIB_SRCS ${minc2_LIB_SRCS} ${minc_common_SRCS}) Loading @@ -333,14 +402,26 @@ ENDIF(LIBMINC_MINC1_SUPPORT) # Keep this variable for compatibility SET(VOLUME_IO_LIBRARY ${LIBMINC_EXTERNAL_LIB_PREFIX}minc2) SET(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}) ADD_LIBRARY(${LIBMINC_LIBRARY} ${LIBRARY_TYPE} ${minc_LIB_SRCS} ${minc_HEADERS} ${volume_io_LIB_SRCS} ${volume_io_HEADERS} ) TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY} ${HDF5_LIBRARY} ${ZLIB_LIBRARY} ${RT_LIBRARY}) # IF(NIFTI_FOUND AND NOT LIBMINC_USE_SYSTEM_NIFTI) ADD_DEPENDENCIES(${LIBMINC_LIBRARY} NIFTI) ENDIF() TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY} ${HDF5_LIBRARIES} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY} ${RT_LIBRARY}) # IF(LIBMINC_MINC1_SUPPORT) INCLUDE_DIRECTORIES(${NETCDF_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY} ${NETCDF_LIBRARY}) ENDIF(LIBMINC_MINC1_SUPPORT) IF(NOT LIBMINC_USE_SYSTEM_NIFTI AND NOT LIBMINC_EXTERNALLY_CONFIGURED) ADD_DEPENDENCIES(minc2 NIFTI) ENDIF(NOT LIBMINC_USE_SYSTEM_NIFTI AND NOT LIBMINC_EXTERNALLY_CONFIGURED) EXPORT(TARGETS ${LIBMINC_LIBRARY} FILE "${LIBMINC_EXPORTED_TARGETS}.cmake") IF(UNIX) Loading @@ -348,7 +429,7 @@ IF(UNIX) IF(LIBMINC_BUILD_SHARED_LIBS) ADD_LIBRARY(${LIBMINC_LIBRARY_STATIC} STATIC ${minc_LIB_SRCS} ${minc_HEADERS} ${volume_io_LIB_SRCS} ${volume_io_HEADERS} ) TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY_STATIC} ${HDF5_LIBRARY} ${ZLIB_LIBRARY} ${RT_LIBRARY} m dl ) TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY_STATIC} ${HDF5_LIBRARY} ${NIFTI_LIBRARIES} ${ZLIB_LIBRARY} ${RT_LIBRARY} m dl ) IF(LIBMINC_MINC1_SUPPORT) TARGET_LINK_LIBRARIES(${LIBMINC_LIBRARY} ${NETCDF_LIBRARY}) ENDIF(LIBMINC_MINC1_SUPPORT) Loading Loading @@ -390,9 +471,9 @@ SET(LIBMINC_USE_FILE_CONFIG ${CMAKE_CURRENT_BINARY_DIR}/UseLIBMINC.cmake) SET(LIBMINC_INCLUDE_DIRS_CONFIG ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/libcommon ${CMAKE_CURRENT_SOURCE_DIR}/libsrc2 ${CMAKE_CURRENT_SOURCE_DIR}/volume_io/Include ${CMAKE_CURRENT_SOURCE_DIR}/nifti ) IF(LIBMINC_MINC1_SUPPORT) Loading Loading @@ -433,8 +514,13 @@ IF(SUPERBUILD_STAGING_PREFIX) 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) Loading
ChangeLog +34 −1 Original line number Diff line number Diff line 2016-05-05 Robert D. Vincent <robert.d.vincent@mcgill.ca> * libsrc/minc_simple.c, libsrc/minc_simple.h: Improved the usefulness of minc_get_world_transform() and added minc_transform_to_world(). 2016-02-09 Robert D. Vincent <robert.d.vincent@mcgill.ca> * libsrc2/dimension.c, libsrc2/volume.c, testdir/minc2-dimension-test.c: Existing code did not properly implement miset_dimension_widths() and miget_dimension_widths(). 2015-11-16 Robert D. Vincent <robert.d.vincent@mcgill.ca> * volume_io/Volumes/volumes.c, volume_io/Include/volume_io/vol_io_protoypes.h: Added copy_volume_new_type() and declared that get_volume_total_n_voxels() returns size_t. * testdir/volume_test.c: Created a simple test for volume functions. * CMakeLists.txt: Updated LIBMINC_SOVERSION 2015-10-14 Robert D. Vincent <robert.d.vincent@mcgill.ca> * volume_io/Volumes/input_mgh.c: Fix loading of time-varying MGZ files. 2015-10-07 Robert D. Vincent <robert.d.vincent@mcgill.ca> * libsrc2/m2util.c, libsrc2/volume.c: Fix improper handling of label volumes on big-endian architectures. -- Release of minc 2.3.00 -- 2015-10-01 Vladimir S. FONOV <vladimir.fonov@gmail.com> * Added new configuration environment variable MINC_FILE_CACHE_MB, it specifies (in megabytes) maximum per file cache for reading MINC2 files default value is 100 Mb. **WARNING** specifying value of 0 will significantly degrade performance on compressed minc2 files. * Added new configuration environment variable MINC_CHECKSUM, when set to 1 will enable FLETCHER32 checksum in new MINC2 files, but only when chunking is enabled 2015-09-11 Robert D. Vincent <robert.d.vincent@mcgill.ca> * Remove autoconf/automake support. Loading
LIBMINCConfig.cmake.in +5 −0 Original line number Diff line number Diff line Loading @@ -7,12 +7,17 @@ set(HAVE_MINC2 1) set(HAVE_EZMINC @LIBMINC_MINC1_SUPPORT@) 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_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@") Loading
README +25 −1 Original line number Diff line number Diff line Loading @@ -78,8 +78,32 @@ MINC_LOGFILE = [+]<pathname>|stdout|- MINC_LOGLEVEL = 0-4 # Maximum memory buffer, used in some minc programs # MINC_MAX_FILE_BUFFER_KB = <N> # Maximum allocated memory, used in some minc programs # MINC_MAX_MEMORY_KB = <N> # Memory cache for MINC2 files, per open file # MINC_FILE_CACHE_MB = <N> # Creation of HDF5 checksums for the volume, only works for MINC2 # file format # default 0 # MINC_CHECKSUM = {1,0} # Prefer using MINC2 API inside Volume IO # default 0 # MINC_PREFER_V2_API = {1,0} DOCUMENTATION ------------- http://en.wikibooks.org/wiki/MINC