From bf1ca0b08452bf9ecea957ed38453384d31cab5e Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Tue, 6 May 2025 23:50:05 +0200 Subject: [PATCH] [minc] Update to 2.4.06, add test port (#45288) --- ports/itk/dependencies.diff | 15 +++- ports/itk/vcpkg.json | 2 +- ports/minc/avoid-try-run.diff | 17 ++++ ports/minc/build.patch | 84 +++++++------------ ports/minc/cmake-config.patch | 62 ++++++++++++++ ports/minc/config.patch | 15 ---- ports/minc/fix-dependency-hdf5.patch | 31 ------- ports/minc/portfile.cmake | 30 +++---- ports/minc/usage | 12 +++ ports/minc/vcpkg.json | 3 +- ports/netcdf-c/portfile.cmake | 4 + ports/netcdf-c/vcpkg.json | 2 +- scripts/ci.feature.baseline.txt | 6 +- .../test_ports/vcpkg-ci-minc/portfile.cmake | 6 ++ .../vcpkg-ci-minc/project/CMakeLists.txt | 13 +++ .../test_ports/vcpkg-ci-minc/project/main.c | 16 ++++ scripts/test_ports/vcpkg-ci-minc/vcpkg.json | 34 ++++++++ versions/baseline.json | 8 +- versions/i-/itk.json | 5 ++ versions/m-/minc.json | 5 ++ versions/n-/netcdf-c.json | 5 ++ 21 files changed, 244 insertions(+), 131 deletions(-) create mode 100644 ports/minc/avoid-try-run.diff create mode 100644 ports/minc/cmake-config.patch delete mode 100644 ports/minc/config.patch delete mode 100644 ports/minc/fix-dependency-hdf5.patch create mode 100644 ports/minc/usage create mode 100644 scripts/test_ports/vcpkg-ci-minc/portfile.cmake create mode 100644 scripts/test_ports/vcpkg-ci-minc/project/CMakeLists.txt create mode 100644 scripts/test_ports/vcpkg-ci-minc/project/main.c create mode 100644 scripts/test_ports/vcpkg-ci-minc/vcpkg.json diff --git a/ports/itk/dependencies.diff b/ports/itk/dependencies.diff index 7383454352..9b00a6bb20 100644 --- a/ports/itk/dependencies.diff +++ b/ports/itk/dependencies.diff @@ -52,6 +52,19 @@ index 8dbbb86..428d335 100644 install(FILES ${ITKEigen3_BINARY_DIR}/src/itk_eigen.h DESTINATION ${ITKEigen3_INSTALL_INCLUDE_DIR} COMPONENT Development +diff --git a/Modules/ThirdParty/MINC/CMakeLists.txt b/Modules/ThirdParty/MINC/CMakeLists.txt +index 5644257..9744d7c 100644 +--- a/Modules/ThirdParty/MINC/CMakeLists.txt ++++ b/Modules/ThirdParty/MINC/CMakeLists.txt +@@ -5,7 +5,7 @@ set(ITKMINC_THIRD_PARTY 1) + set(ITKMINC_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/src) + if(ITK_USE_SYSTEM_MINC) + +- find_package(LIBMINC REQUIRED) ++ find_package(LIBMINC REQUIRED GLOBAL) + + set(ITKMINC_SYSTEM_INCLUDE_DIRS ${LIBMINC_INCLUDE_DIRS} ) + set(ITKMINC_SYSTEM_LIBRARY_DIRS ${LIBMINC_LIBRARY_DIRS} ) diff --git a/Modules/ThirdParty/OpenJPEG/CMakeLists.txt b/Modules/ThirdParty/OpenJPEG/CMakeLists.txt index 103eaa9..b59eb81 100644 --- a/Modules/ThirdParty/OpenJPEG/CMakeLists.txt @@ -77,7 +90,7 @@ index 103eaa9..b59eb81 100644 itk_module_impl() diff --git a/Modules/ThirdParty/VNL/CMakeLists.txt b/Modules/ThirdParty/VNL/CMakeLists.txt -index c379a24..6a15432 100644 +index c379a24..25fdb8d 100644 --- a/Modules/ThirdParty/VNL/CMakeLists.txt +++ b/Modules/ThirdParty/VNL/CMakeLists.txt @@ -5,7 +5,7 @@ option(ITK_USE_SYSTEM_VXL "Use an outside build of VXL." OFF) diff --git a/ports/itk/vcpkg.json b/ports/itk/vcpkg.json index 98a90a33fc..7295fa5f49 100644 --- a/ports/itk/vcpkg.json +++ b/ports/itk/vcpkg.json @@ -1,7 +1,7 @@ { "name": "itk", "version": "5.4.0", - "port-version": 2, + "port-version": 3, "description": "Insight Segmentation and Registration Toolkit (ITK) is used for image processing and analysis.", "homepage": "https://github.com/InsightSoftwareConsortium/ITK", "license": "Apache-2.0", diff --git a/ports/minc/avoid-try-run.diff b/ports/minc/avoid-try-run.diff new file mode 100644 index 0000000000..5353a6c2ff --- /dev/null +++ b/ports/minc/avoid-try-run.diff @@ -0,0 +1,17 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index dcd594b..a357b90 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -174,6 +174,12 @@ ELSE(HAVE_CLOCK_GETTIME_RT) + CHECK_SYMBOL_EXISTS(clock_gettime "time.h" HAVE_CLOCK_GETTIME_SYMBOL) + # then check that it's available + IF(HAVE_CLOCK_GETTIME_SYMBOL) ++ if(CMAKE_CROSSCOMPILING) ++ # Seed try_run results. Override in triplet if needed. ++ set(HAVE_CLOCK_GETTIME_RUN 0 CACHE STRING "") ++ set(CMAKE_TRY_COMPILE_TARGET_TYPE EXECUTABLE) ++ try_compile(HAVE_CLOCK_GETTIME_COMP SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/check_clock_gettime.c) ++ endif() + TRY_RUN(HAVE_CLOCK_GETTIME_RUN HAVE_CLOCK_GETTIME_COMP + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/check_clock_gettime.c diff --git a/ports/minc/build.patch b/ports/minc/build.patch index d0275c20d4..40f4df614d 100644 --- a/ports/minc/build.patch +++ b/ports/minc/build.patch @@ -1,21 +1,38 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 52cc81ace..d7a1f63f8 100644 ---- a/CMakeLists.txt +index caf681a..58b7648 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}) +@@ -3,6 +3,8 @@ + # Andrew Janke - a.janke@gmail.com + # Vladimir S. FONOV - vladimir.fonov@gmail.com - ADD_LIBRARY(${LIBMINC_LIBRARY} ${LIBRARY_TYPE} ${minc_LIB_SRCS} ${minc_HEADERS} ${volume_io_LIB_SRCS} ${volume_io_HEADERS} ) ++CMAKE_MINIMUM_REQUIRED(VERSION 3.6...3.10) ++ + PROJECT(LIBMINC) + + SET(LIBMINC_PACKAGE_VERSION_MAJOR 2) +@@ -22,8 +24,6 @@ INCLUDE(CTest) + + ENABLE_TESTING() + +-CMAKE_MINIMUM_REQUIRED(VERSION 3.6) - -+if(WIN32) -+ target_link_libraries(${LIBMINC_LIBRARY} ws2_32) -+endif() - IF(NIFTI_FOUND AND NOT LIBMINC_USE_SYSTEM_NIFTI) - ADD_DEPENDENCIES(${LIBMINC_LIBRARY} NIFTI) + IF( POLICY CMP0063 ) + CMAKE_POLICY(SET CMP0063 NEW) ENDIF() -@@ -453,7 +456,7 @@ IF( LIBMINC_INSTALL_LIB_DIR ) +@@ -445,6 +445,11 @@ IF(UNIX) + SET(LIBMINC_STATIC_LIBRARIES_CONFIG ${LIBMINC_STATIC_LIBRARIES_CONFIG} m dl ${RT_LIBRARY_NAME}) + ENDIF(UNIX) + ++if(WIN32) ++ add_definitions(-DMNCAPI=) ++ list(APPEND LIBMINC_LIBRARIES_CONFIG ws2_32) ++endif() ++ + SET(minc_LIB_SRCS ${minc2_LIB_SRCS} ${minc_common_SRCS}) + SET(minc_HEADERS ${minc2_HEADERS} ${minc_common_HEADERS}) + +@@ -513,7 +518,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 @@ -24,44 +41,3 @@ index 52cc81ace..d7a1f63f8 100644 ) 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/cmake-config.patch b/ports/minc/cmake-config.patch new file mode 100644 index 0000000000..6588995235 --- /dev/null +++ b/ports/minc/cmake-config.patch @@ -0,0 +1,62 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a80e172..dcd594b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -63,13 +63,19 @@ IF(NOT LIBMINC_EXTERNALLY_CONFIGURED) + SET (LIBMINC_INSTALL_DATA_DIR share) + + IF(LIBMINC_MINC1_SUPPORT) +- FIND_PACKAGE(NETCDF REQUIRED) ++ find_package(netCDF CONFIG REQUIRED) ++ set(NETCDF_LIBRARY netCDF::netcdf) + ENDIF(LIBMINC_MINC1_SUPPORT) + + # external packages + FIND_PACKAGE(ZLIB REQUIRED) +- SET(HDF5_NO_FIND_PACKAGE_CONFIG_FILE ON) +- FIND_PACKAGE(HDF5 REQUIRED COMPONENTS C ) ++ set(ZLIB_LIBRARY ZLIB::ZLIB) ++ find_package(hdf5 CONFIG REQUIRED) ++ if (TARGET hdf5::hdf5-shared) ++ SET(HDF5_LIBRARIES hdf5::hdf5-shared) ++ elseif (TARGET hdf5::hdf5-static) ++ SET(HDF5_LIBRARIES hdf5::hdf5-static) ++ endif() + + IF(LIBMINC_USE_NIFTI) + IF (LIBMINC_USE_SYSTEM_NIFTI) +@@ -533,7 +539,7 @@ ENDIF() + + + # config for install dir +-SET(LIBMINC_USE_FILE_CONFIG "\${LIBMINC_INSTALL_PREFIX}/lib/cmake/Use${LIBMINC_EXTERNAL_LIB_PREFIX}LIBMINC.cmake" ) ++SET(LIBMINC_USE_FILE_CONFIG "\${CMAKE_CURRENT_LIST_DIR}/Use${LIBMINC_EXTERNAL_LIB_PREFIX}LIBMINC.cmake" ) + SET(LIBMINC_INCLUDE_DIRS_CONFIG "\${LIBMINC_INSTALL_PREFIX}/include" ) + SET(LIBMINC_LIBRARY_DIRS_CONFIG "\${LIBMINC_INSTALL_PREFIX}/lib" ) + SET(LIBMINC_STATIC_LIBRARIES_CONFIG "" ) +diff --git a/LIBMINCConfig.cmake.in b/LIBMINCConfig.cmake.in +index f8f7eb6..131f54f 100644 +--- a/LIBMINCConfig.cmake.in ++++ b/LIBMINCConfig.cmake.in +@@ -1,5 +1,11 @@ + # LIBMINC CMake configuration file + ++include(CMakeFindDependencyMacro) ++find_dependency(ZLIB) ++find_dependency(hdf5 CONFIG) ++if("@LIBMINC_MINC1_SUPPORT@") ++ find_dependency(netCDF CONFIG) ++endif() + + get_filename_component(LIBMINC_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE) + get_filename_component(LIBMINC_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH ) +@@ -21,7 +27,8 @@ set(LIBMINC_NIFTI_SUPPORT @LIBMINC_NIFTI_SUPPORT@) + #set(NIFTI_LIBRARIES "@NIFTI_LIBRARIES@") + + set(LIBMINC_INCLUDE_DIRS "@LIBMINC_INCLUDE_DIRS_CONFIG@") # ${LIBMINC_INSTALL_PREFIX}/include +-set(LIBMINC_LIBRARY_DIRS "@LIBMINC_LIBRARY_DIRS_CONFIG@") # ${LIBMINC_INSTALL_PREFIX}/lib ++find_library(Z_VCPKG_LIBMINC_LIBRARY NAMES minc2 REQUIRED) # pick from vcpkg search paths ++get_filename_component(LIBMINC_LIBRARY_DIRS "${Z_VCPKG_LIBMINC_LIBRARY}" PATH) + set(LIBMINC_USE_FILE "@LIBMINC_USE_FILE_CONFIG@") # ${LIBMINC_INSTALL_PREFIX}/lib/UseLIBMINC.cmake + + set(LIBMINC_LIBRARIES "@LIBMINC_LIBRARIES_CONFIG@") diff --git a/ports/minc/config.patch b/ports/minc/config.patch deleted file mode 100644 index a726b9a57f..0000000000 --- a/ports/minc/config.patch +++ /dev/null @@ -1,15 +0,0 @@ -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/fix-dependency-hdf5.patch b/ports/minc/fix-dependency-hdf5.patch deleted file mode 100644 index 40943411c5..0000000000 --- a/ports/minc/fix-dependency-hdf5.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index a6830b4..da3d635 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -65,7 +65,12 @@ IF(NOT LIBMINC_EXTERNALLY_CONFIGURED) - # external packages - FIND_PACKAGE(ZLIB REQUIRED) - SET(HDF5_NO_FIND_PACKAGE_CONFIG_FILE ON) -- FIND_PACKAGE(HDF5 REQUIRED COMPONENTS C ) -+ FIND_PACKAGE(hdf5 CONFIG REQUIRED) -+ if (TARGET hdf5::hdf5-shared) -+ SET(HDF5_LIBRARIES hdf5::hdf5-shared) -+ elseif (TARGET hdf5::hdf5-static) -+ SET(HDF5_LIBRARIES hdf5::hdf5-static) -+ endif() - - IF (LIBMINC_USE_SYSTEM_NIFTI) - FIND_PACKAGE(NIFTI) -@@ -515,12 +520,8 @@ IF(SUPERBUILD_STAGING_PREFIX) - 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}") diff --git a/ports/minc/portfile.cmake b/ports/minc/portfile.cmake index 5cb60d0fc4..26061144fa 100644 --- a/ports/minc/portfile.cmake +++ b/ports/minc/portfile.cmake @@ -1,13 +1,14 @@ +string(REGEX REPLACE "(release-[0-9][.][0-9])[.]([0-9])\$" "\\1.0\\2" git_tag "release-${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO BIC-MNI/libminc - REF e75a936c12a305b596d743c26a5437196ebce2a4 - SHA512 744f879ac8f0594c310d1c1b7fe67543c5feeb3e5a0979035918dbb2bf1d0973fbd389e5357a75631e618cc614b648c21179f7467576bd68e3522e63f21451b0 + REF ${git_tag} + SHA512 78d5c14b82c8da5de7651de22fe47ae934925b27a626b8685b19554b7a35240eb5ab6d4da6232ce046e9e0f25619bbfae1d7c0fc34994d935986dc151d7b93a0 HEAD_REF master PATCHES + avoid-try-run.diff build.patch - config.patch - fix-dependency-hdf5.patch + cmake-config.patch ) vcpkg_check_features( @@ -20,31 +21,22 @@ 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() +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LIBMINC_BUILD_SHARED_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" - DISABLE_PARALLEL_CONFIGURE OPTIONS - "-DBUILD_TESTING=OFF" - "-DLIBMINC_USE_SYSTEM_NIFTI=ON" - ${OPTIONS} + -DBUILD_TESTING=OFF + -DLIBMINC_BUILD_SHARED_LIBS=${LIBMINC_BUILD_SHARED_LIBS} + -DLIBMINC_USE_SYSTEM_NIFTI=ON ${FEATURE_OPTIONS} ) - vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake PACKAGE_NAME 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) +file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") diff --git a/ports/minc/usage b/ports/minc/usage new file mode 100644 index 0000000000..1a4c1ce177 --- /dev/null +++ b/ports/minc/usage @@ -0,0 +1,12 @@ +minc provides CMake integration: + + find_package(LIBMINC CONFIG REQUIRED) + target_include_directories(main PRIVATE ${LIBMINC_INCLUDE_DIRS}) + target_link_directories(main PRIVATE ${LIBMINC_LIBRARY_DIRS}) + target_link_libraries(main PRIVATE ${LIBMINC_LIBRARIES}) + +LIBMINC_LIBRARIES may include imported targets. +Downstream CMake config may need to add: + + include(CMakeFindDependencyMacro) + find_dependency(LIBMINC CONFIG) diff --git a/ports/minc/vcpkg.json b/ports/minc/vcpkg.json index 6b23453782..6537b60367 100644 --- a/ports/minc/vcpkg.json +++ b/ports/minc/vcpkg.json @@ -1,7 +1,6 @@ { "name": "minc", - "version-string": "2.4.03", - "port-version": 3, + "version": "2.4.6", "description": "MINC - Medical Image NetCDF or MINC isn't netCDF", "homepage": "https://github.com/BIC-MNI/libminc", "license": null, diff --git a/ports/netcdf-c/portfile.cmake b/ports/netcdf-c/portfile.cmake index 8bbad4e4d9..0773e04eaf 100644 --- a/ports/netcdf-c/portfile.cmake +++ b/ports/netcdf-c/portfile.cmake @@ -80,6 +80,10 @@ vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "netcdf" CONFIG_PATH "lib/cmake/netCDF") vcpkg_fixup_pkgconfig() +if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/netcdf.h" "defined(DLL_NETCDF)" "1") +endif() + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin/nc-config" "${CURRENT_PACKAGES_DIR}/bin/nc-config") # invalid if("tools" IN_LIST FEATURES) vcpkg_copy_tools( diff --git a/ports/netcdf-c/vcpkg.json b/ports/netcdf-c/vcpkg.json index bed76a2e04..28853ee42b 100644 --- a/ports/netcdf-c/vcpkg.json +++ b/ports/netcdf-c/vcpkg.json @@ -1,7 +1,7 @@ { "name": "netcdf-c", "version": "4.8.1", - "port-version": 5, + "port-version": 6, "description": "A set of self-describing, machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data.", "homepage": "https://github.com/Unidata/netcdf-c", "dependencies": [ diff --git a/scripts/ci.feature.baseline.txt b/scripts/ci.feature.baseline.txt index 30df746933..f8cc816bcd 100644 --- a/scripts/ci.feature.baseline.txt +++ b/scripts/ci.feature.baseline.txt @@ -347,6 +347,7 @@ nanodbc:arm-uwp=fail nanodbc:x64-uwp=fail nativefiledialog:arm-uwp=fail nativefiledialog:x64-uwp=fail +netcdf-c(android)=fail netcdf-cxx4:x64-windows-static-md=fail nettle:arm-uwp=fail ngspice:x64-windows-static=fail @@ -1468,9 +1469,8 @@ mfl:arm64-uwp = cascade mfl:x64-uwp = cascade milerius-sfml-imgui:arm64-uwp = cascade milerius-sfml-imgui:x64-uwp = cascade -minc:arm64-uwp = cascade -minc:arm64-windows = cascade -minc:x64-uwp = cascade +minc[minc1](android) = cascade +minc(uwp) = cascade mnn[cuda]:x64-windows = cascade mnn[cuda]:x64-windows-static = cascade mnn[cuda]:x64-windows-static-md = cascade diff --git a/scripts/test_ports/vcpkg-ci-minc/portfile.cmake b/scripts/test_ports/vcpkg-ci-minc/portfile.cmake new file mode 100644 index 0000000000..d1ab44ac5a --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-minc/portfile.cmake @@ -0,0 +1,6 @@ +set(VCPKG_POLICY_EMPTY_PACKAGE enabled) + +vcpkg_cmake_configure( + SOURCE_PATH "${CURRENT_PORT_DIR}/project" +) +vcpkg_cmake_build() diff --git a/scripts/test_ports/vcpkg-ci-minc/project/CMakeLists.txt b/scripts/test_ports/vcpkg-ci-minc/project/CMakeLists.txt new file mode 100644 index 0000000000..adf44d4780 --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-minc/project/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.30) +project(minc-test C) + +find_package(LIBMINC CONFIG REQUIRED) + +add_executable(main main.c) +target_include_directories(main PRIVATE ${LIBMINC_INCLUDE_DIRS}) +target_link_directories(main PRIVATE ${LIBMINC_LIBRARY_DIRS}) +target_link_libraries(main PRIVATE ${LIBMINC_LIBRARIES}) + +if(NOT EXISTS "${LIBMINC_USE_FILE}") + message(SEND_ERROR "No such LIBMINC_USE_FILE: ${LIBMINC_USE_FILE}") +endif() diff --git a/scripts/test_ports/vcpkg-ci-minc/project/main.c b/scripts/test_ports/vcpkg-ci-minc/project/main.c new file mode 100644 index 0000000000..272158fce8 --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-minc/project/main.c @@ -0,0 +1,16 @@ +#include +#include + +int main() +{ + int result; + mihandle_t hvol; + + result = miopen_volume("/tmp/test.mnc", MI2_OPEN_READ, &hvol); + if (result != MI_NOERROR) { + fprintf(stderr, "Error opening the input file.\n"); + } + + miclose_volume(hvol); + return 0; +} diff --git a/scripts/test_ports/vcpkg-ci-minc/vcpkg.json b/scripts/test_ports/vcpkg-ci-minc/vcpkg.json new file mode 100644 index 0000000000..c53f7775f7 --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-minc/vcpkg.json @@ -0,0 +1,34 @@ +{ + "name": "vcpkg-ci-minc", + "version-string": "ci", + "description": "Port to force features of minc within CI", + "homepage": "https://github.com/microsoft/vcpkg", + "license": "MIT", + "dependencies": [ + { + "name": "minc", + "default-features": false + }, + { + "name": "vcpkg-cmake", + "host": true + } + ], + "default-features": [ + "all" + ], + "features": { + "all": { + "description": "Test all features", + "dependencies": [ + { + "name": "minc", + "features": [ + "minc1" + ], + "platform": "native" + } + ] + } + } +} diff --git a/versions/baseline.json b/versions/baseline.json index 05137479f7..626c30a3fd 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -3878,7 +3878,7 @@ }, "itk": { "baseline": "5.4.0", - "port-version": 2 + "port-version": 3 }, "itlib": { "baseline": "1.11.7", @@ -6117,8 +6117,8 @@ "port-version": 0 }, "minc": { - "baseline": "2.4.03", - "port-version": 3 + "baseline": "2.4.6", + "port-version": 0 }, "minhook": { "baseline": "1.3.4", @@ -6506,7 +6506,7 @@ }, "netcdf-c": { "baseline": "4.8.1", - "port-version": 5 + "port-version": 6 }, "netcdf-cxx4": { "baseline": "4.3.1", diff --git a/versions/i-/itk.json b/versions/i-/itk.json index b997bd640e..803c866718 100644 --- a/versions/i-/itk.json +++ b/versions/i-/itk.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "cb1a66b19a94d4b7ac00b7415b8c3411ad6a6bd3", + "version": "5.4.0", + "port-version": 3 + }, { "git-tree": "d549b14c2b06dc9986a4e2ca48ce249d90d117b3", "version": "5.4.0", diff --git a/versions/m-/minc.json b/versions/m-/minc.json index bb707d820b..b95abae05c 100644 --- a/versions/m-/minc.json +++ b/versions/m-/minc.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "dcd0851614368dafb747c11147a25b36f081cc39", + "version": "2.4.6", + "port-version": 0 + }, { "git-tree": "7cadb35b3498a07bf7e64fafd1a2cfc04ef96a52", "version-string": "2.4.03", diff --git a/versions/n-/netcdf-c.json b/versions/n-/netcdf-c.json index 639de55d3d..891de63ae6 100644 --- a/versions/n-/netcdf-c.json +++ b/versions/n-/netcdf-c.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "5056978ea1c3b7c05c51421feb8a16b0a35c2a75", + "version": "4.8.1", + "port-version": 6 + }, { "git-tree": "e93ab8e5b418fbc359d4e1dcb888e2e050c83f49", "version": "4.8.1",