aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>2021-06-11 07:22:46 +0800
committerGitHub <noreply@github.com>2021-06-10 16:22:46 -0700
commit761578f82729ad40ef287818723f49d27dd28561 (patch)
tree34b5d7f80ec9b39a76c1fe40128422ebf7446861
parentcbe38c8280a6d95fe5c895ef32090e9797af4aff (diff)
downloadvcpkg-761578f82729ad40ef287818723f49d27dd28561.tar.gz
vcpkg-761578f82729ad40ef287818723f49d27dd28561.zip
[matio] Use official CMakeLists, add features (#18254)
* [matio] Use official CMakeLists, add features * Fix portfile.cmake * update version record * Commit missing files * Update versions/m-/matio.json * Update ports/matio/portfile.cmake * Update ports/matio/portfile.cmake * Update versions/m-/matio.json
-rw-r--r--ports/matio/CMakeLists.txt60
-rw-r--r--ports/matio/CONTROL5
-rw-r--r--ports/matio/fix-dependencies.patch28
-rw-r--r--ports/matio/portfile.cmake28
-rw-r--r--ports/matio/vcpkg.json40
-rw-r--r--versions/baseline.json2
-rw-r--r--versions/m-/matio.json5
7 files changed, 96 insertions, 72 deletions
diff --git a/ports/matio/CMakeLists.txt b/ports/matio/CMakeLists.txt
deleted file mode 100644
index d7b6bb61b..000000000
--- a/ports/matio/CMakeLists.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-cmake_minimum_required(VERSION 3.8.0)
-project(libmatio C)
-
-set(SRC
- src/endian.c
- src/inflate.c
- src/io.c
- src/mat.c
- src/mat4.c
- src/mat5.c
- src/mat73.c
- visual_studio/matio.def
- src/matvar_cell.c
- src/matvar_struct.c
- src/read_data.c
- src/snprintf.c
-)
-
-add_library(libmatio ${SRC})
-target_include_directories(libmatio PRIVATE src visual_studio)
-target_compile_definitions(libmatio PRIVATE
- -DH5_NO_DEPRECATED_SYMBOLS
- -DMAT73=1
- -DREPLACE_GETOPT
- -DMATIO_HAVE_INTTYPES_H=1
- -DMATIO_HAVE_STDINT_H=1
-)
-
-find_package(ZLIB REQUIRED)
-target_link_libraries(libmatio PRIVATE ZLIB::ZLIB)
-target_compile_definitions(libmatio PRIVATE -DHAVE_ZLIB=1)
-
-find_package(hdf5 CONFIG REQUIRED)
-
-if(BUILD_SHARED_LIBS)
- target_compile_definitions(libmatio PRIVATE -DHAVE_HDF5=1 -DH5_BUILT_AS_DYNAMIC_LIB)
- if(HDF5_USE_STATIC_LIBRARIES)
- target_link_libraries(libmatio PRIVATE hdf5::hdf5-static hdf5::hdf5_hl-static)
- else()
- target_link_libraries(libmatio PRIVATE hdf5::hdf5-shared hdf5::hdf5_hl-shared)
- endif()
-else()
- target_compile_definitions(libmatio PRIVATE -DHAVE_HDF5=1 -DH5_BUILT_AS_STATIC_LIB)
- target_link_libraries(libmatio PRIVATE hdf5::hdf5-static hdf5::hdf5_hl-static)
-endif()
-
-install(
- TARGETS libmatio
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION lib
- ARCHIVE DESTINATION lib
-)
-
-if(NOT DISABLE_INSTALL_HEADERS)
- install(FILES
- src/matio.h
- visual_studio/matio_pubconf.h
- DESTINATION include
- )
-endif()
diff --git a/ports/matio/CONTROL b/ports/matio/CONTROL
deleted file mode 100644
index 0d304a646..000000000
--- a/ports/matio/CONTROL
+++ /dev/null
@@ -1,5 +0,0 @@
-Source: matio
-Version: 1.5.19
-Homepage: https://github.com/tbeu/matio
-Description: MATLAB MAT File I/O Library
-Build-Depends: zlib, hdf5
diff --git a/ports/matio/fix-dependencies.patch b/ports/matio/fix-dependencies.patch
new file mode 100644
index 000000000..03304d083
--- /dev/null
+++ b/ports/matio/fix-dependencies.patch
@@ -0,0 +1,28 @@
+diff --git a/cmake/thirdParties.cmake b/cmake/thirdParties.cmake
+index 41d8529..392d455 100644
+--- a/cmake/thirdParties.cmake
++++ b/cmake/thirdParties.cmake
+@@ -19,7 +19,7 @@ if(MATIO_WITH_HDF5)
+ endif()
+ set(HDF5_FOUND TRUE)
+ else()
+- find_package(HDF5)
++ find_package(HDF5 CONFIG REQUIRED)
+ if(HDF5_FOUND)
+ set(HDF_MIN_VER 1.8)
+ if(HDF5_VERSION VERSION_LESS ${HDF_MIN_VER})
+@@ -44,9 +44,12 @@ if(HDF5_FOUND)
+ elseif(TARGET hdf5)
+ # target from hdf5 1.8 config
+ target_link_libraries(MATIO::HDF5 INTERFACE hdf5)
+- elseif(TARGET HDF5::HDF5)
++ elseif(TARGET hdf5::hdf5-shared)
+ # target defined in CMake FindHDF5 (since 3.19)
+- target_link_libraries(MATIO::HDF5 INTERFACE HDF5::HDF5)
++ target_link_libraries(MATIO::HDF5 INTERFACE hdf5::hdf5-shared)
++ elseif(TARGET hdf5::hdf5-static)
++ # target defined in CMake FindHDF5 (since 3.19)
++ target_link_libraries(MATIO::HDF5 INTERFACE hdf5-static)
+ else()
+ # results from CMake FindHDF5
+ set_target_properties(MATIO::HDF5 PROPERTIES
diff --git a/ports/matio/portfile.cmake b/ports/matio/portfile.cmake
index a1e55d41d..c72bd3e4d 100644
--- a/ports/matio/portfile.cmake
+++ b/ports/matio/portfile.cmake
@@ -4,18 +4,34 @@ vcpkg_from_github(
REF ca56394e5672115df1981996ed12524d1d551259 # v1.5.19
SHA512 67c239d8aabafaa935775f3b260ba0756c196b0d845ef5116365c9aa6a0b24dae70d92c4e74d5d43ae073ae0744f084f0f58ead864eb77c813d43dbbb3e4ec5e
HEAD_REF master
+ PATCHES fix-dependencies.patch
)
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED)
-vcpkg_configure_cmake(
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ hdf5 MATIO_WITH_HDF5
+ zlib MATIO_WITH_ZLIB
+ extended-sparse MATIO_EXTENDED_SPARSE
+ mat73 MATIO_MAT73
+ pic MATIO_PIC
+)
+
+vcpkg_cmake_configure(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
- OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+ OPTIONS ${FEATURE_OPTIONS}
+ -DMATIO_SHARED=${BUILD_SHARED}
+ -DMATIO_USE_CONAN=OFF
)
-vcpkg_install_cmake()
-
-file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/matio RENAME copyright)
+vcpkg_cmake_install()
vcpkg_copy_pdbs()
+
+vcpkg_copy_tools(TOOL_NAMES matdump AUTO_CLEAN)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
diff --git a/ports/matio/vcpkg.json b/ports/matio/vcpkg.json
new file mode 100644
index 000000000..7e4b8d05a
--- /dev/null
+++ b/ports/matio/vcpkg.json
@@ -0,0 +1,40 @@
+{
+ "name": "matio",
+ "version-semver": "1.5.19",
+ "port-version": 1,
+ "description": "MATLAB MAT File I/O Library",
+ "homepage": "https://github.com/tbeu/matio",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ }
+ ],
+ "default-features": [
+ "hdf5",
+ "zlib"
+ ],
+ "features": {
+ "extended-sparse": {
+ "description": "Enable extended sparse matrix data types not supported in MATLAB"
+ },
+ "hdf5": {
+ "description": "Check for HDF5 library",
+ "dependencies": [
+ "hdf5"
+ ]
+ },
+ "mat73": {
+ "description": "Enable support for version 7.3 MAT files"
+ },
+ "pic": {
+ "description": "Enable position-independent code (PIC), i.e., compilation with the -fPIC flag"
+ },
+ "zlib": {
+ "description": "Check for zlib library",
+ "dependencies": [
+ "zlib"
+ ]
+ }
+ }
+}
diff --git a/versions/baseline.json b/versions/baseline.json
index 655d131b3..8204db207 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -3910,7 +3910,7 @@
},
"matio": {
"baseline": "1.5.19",
- "port-version": 0
+ "port-version": 1
},
"matplotlib-cpp": {
"baseline": "2020-08-27",
diff --git a/versions/m-/matio.json b/versions/m-/matio.json
index 12b26f4ec..74bf34be5 100644
--- a/versions/m-/matio.json
+++ b/versions/m-/matio.json
@@ -1,6 +1,11 @@
{
"versions": [
{
+ "git-tree": "c11c8ba1ca5c7f0286165d497088779ec0df756a",
+ "version-semver": "1.5.19",
+ "port-version": 1
+ },
+ {
"git-tree": "09b997c5cb31fdde33faf650612324a847967360",
"version-string": "1.5.19",
"port-version": 0