aboutsummaryrefslogtreecommitdiff
path: root/ports/minc
diff options
context:
space:
mode:
Diffstat (limited to 'ports/minc')
-rw-r--r--ports/minc/CONTROL9
-rw-r--r--ports/minc/build.patch67
-rw-r--r--ports/minc/config.patch15
-rw-r--r--ports/minc/portfile.cmake47
4 files changed, 138 insertions, 0 deletions
diff --git a/ports/minc/CONTROL b/ports/minc/CONTROL
new file mode 100644
index 000000000..6cd1d5499
--- /dev/null
+++ b/ports/minc/CONTROL
@@ -0,0 +1,9 @@
+Source: minc
+Version: 2.4.03
+Description: MINC - Medical Image NetCDF or MINC isn't netCDF
+Homepage: https://github.com/BIC-MNI/libminc
+Build-Depends: nifticlib, hdf5[core], zlib
+
+Feature: minc1
+Description: Support minc1 file format, requires NETCDF
+Build-Depends: netcdf[core] \ No newline at end of file
diff --git a/ports/minc/build.patch b/ports/minc/build.patch
new file mode 100644
index 000000000..d0275c20d
--- /dev/null
+++ b/ports/minc/build.patch
@@ -0,0 +1,67 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 52cc81ace..d7a1f63f8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -403,9 +404,11 @@ 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} )
+-
++if(WIN32)
++ target_link_libraries(${LIBMINC_LIBRARY} ws2_32)
++endif()
+ IF(NIFTI_FOUND AND NOT LIBMINC_USE_SYSTEM_NIFTI)
+ ADD_DEPENDENCIES(${LIBMINC_LIBRARY} NIFTI)
+ ENDIF()
+@@ -453,7 +456,7 @@ IF( LIBMINC_INSTALL_LIB_DIR )
+ ${LIBMINC_EXPORTED_TARGETS}
+ LIBRARY DESTINATION ${LIBMINC_INSTALL_LIB_DIR} COMPONENT libraries
+ ARCHIVE DESTINATION ${LIBMINC_INSTALL_LIB_DIR} COMPONENT libraries
+- RUNTIME DESTINATION ${LIBMINC_INSTALL_LIB_DIR} COMPONENT libraries
++ RUNTIME DESTINATION ${LIBMINC_INSTALL_BIN_DIR} COMPONENT libraries
+ )
+ ENDIF( LIBMINC_INSTALL_LIB_DIR )
+
+@@ -538,7 +541,7 @@ IF(LIBMINC_INSTALL_LIB_DIR AND NOT LIBMINC_INSTALL_NO_DEVELOPMENT)
+ ${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)
+diff --git a/config.h.cmake b/config.h.cmake
+index 9ceffa8fc..21c2f3baf 100644
+--- a/config.h.cmake
++++ b/config.h.cmake
+@@ -1,4 +1,8 @@
+ /* various defines */
++#ifdef _MSC_VER
++#define strcasecmp _stricmp
++#define strncasecmp _strnicmp
++#endif
+
+ #ifndef MINC2
+ #define MINC2 @MINC2@
+diff --git a/libcommon/minc_config.c b/libcommon/minc_config.c
+index 531ef108e..5472d9274 100644
+--- a/libcommon/minc_config.c
++++ b/libcommon/minc_config.c
+@@ -20,14 +20,6 @@
+
+ #include "minc_config.h"
+
+-#ifdef _MSC_VER
+-#define snprintf _snprintf
+-#define vsnprintf _vsnprintf
+-#define strcasecmp _stricmp
+-#define strncasecmp _strnicmp
+-#endif
+-
+-
+ static const char *_CONFIG_VAR[]=
+ {
+ "MINC_FORCE_V2",
diff --git a/ports/minc/config.patch b/ports/minc/config.patch
new file mode 100644
index 000000000..a726b9a57
--- /dev/null
+++ b/ports/minc/config.patch
@@ -0,0 +1,15 @@
+diff --git a/LIBMINCConfig.cmake.in b/LIBMINCConfig.cmake.in
+index 7790597b2..c041b685a 100644
+--- a/LIBMINCConfig.cmake.in
++++ b/LIBMINCConfig.cmake.in
+@@ -1,3 +1,4 @@
++set(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../../")
+ # LIBMINC CMake configuration file
+
+ get_filename_component(LIBMINC_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH )
+@@ -37,3 +38,4 @@ set( LIBMINC_FOUND 1 )
+ # set( LIBMINC_TARGETS_IMPORTED 1 )
+ # include( "${LIBMINC_CMAKE_DIR}/@LIBMINC_EXPORTED_TARGETS@.cmake" )
+ #endif()
++unset(_IMPORT_PREFIX)
+\ No newline at end of file
diff --git a/ports/minc/portfile.cmake b/ports/minc/portfile.cmake
new file mode 100644
index 000000000..4b9ff63b1
--- /dev/null
+++ b/ports/minc/portfile.cmake
@@ -0,0 +1,47 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO BIC-MNI/libminc
+ REF e75a936c12a305b596d743c26a5437196ebce2a4
+ SHA512 744f879ac8f0594c310d1c1b7fe67543c5feeb3e5a0979035918dbb2bf1d0973fbd389e5357a75631e618cc614b648c21179f7467576bd68e3522e63f21451b0
+ HEAD_REF master
+ PATCHES build.patch
+ config.patch
+)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ "minc1" LIBMINC_MINC1_SUPPORT
+)
+
+if(VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # Symbols are not properly exported
+endif()
+
+set(OPTIONS)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ list(APPEND OPTIONS "-DLIBMINC_BUILD_SHARED_LIBS=ON")
+else()
+ list(APPEND OPTIONS "-DLIBMINC_BUILD_SHARED_LIBS=OFF")
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ DISABLE_PARALLEL_CONFIGURE
+ OPTIONS
+ "-DBUILD_TESTING=OFF"
+ "-DLIBMINC_USE_SYSTEM_NIFTI=ON"
+ ${OPTIONS}
+ ${FEATURE_OPTIONS}
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake TARGET_PATH share/libminc)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
+endif()
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)