mirror of
https://github.com/microsoft/vcpkg.git
synced 2026-01-18 01:11:23 +01:00
[matio] Update, cleanup, export CMake config (#48308)
This commit is contained in:
40
ports/matio/cmake-config.diff
Normal file
40
ports/matio/cmake-config.diff
Normal file
@@ -0,0 +1,40 @@
|
||||
diff --git a/cmake/src.cmake b/cmake/src.cmake
|
||||
index 8f60bcf..0dc5c53 100644
|
||||
--- a/cmake/src.cmake
|
||||
+++ b/cmake/src.cmake
|
||||
@@ -60,8 +60,9 @@ endif()
|
||||
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
|
||||
|
||||
target_include_directories(${PROJECT_NAME}
|
||||
- INTERFACE ${PROJECT_SOURCE_DIR}/src
|
||||
- PUBLIC ${PROJECT_BINARY_DIR}/src
|
||||
+ INTERFACE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>
|
||||
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
+ PUBLIC $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/src>
|
||||
)
|
||||
if(STDINT_MSVC)
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/visual_studio)
|
||||
@@ -117,3 +118,23 @@ install(TARGETS ${PROJECT_NAME} EXPORT lib${PROJECT_NAME}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
)
|
||||
+install(EXPORT lib${PROJECT_NAME}
|
||||
+ FILE matio-targets.cmake
|
||||
+ NAMESPACE ${PROJECT_NAME}::
|
||||
+ DESTINATION share/matio
|
||||
+)
|
||||
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/matio-config.cmake" "
|
||||
+include(CMakeFindDependencyMacro)
|
||||
+if(\"${MATIO_WITH_HDF5}\" AND NOT TARGET MATIO::HDF5)
|
||||
+ find_dependency(HDF5)
|
||||
+ add_library(MATIO::HDF5 ALIAS HDF5::HDF5)
|
||||
+endif()
|
||||
+if(\"${MATIO_WITH_ZLIB}\" AND NOT TARGET MATIO::ZLIB)
|
||||
+ find_dependency(ZLIB)
|
||||
+ add_library(MATIO::ZLIB ALIAS ZLIB::ZLIB)
|
||||
+endif()
|
||||
+include(\"\${CMAKE_CURRENT_LIST_DIR}/matio-targets.cmake\")
|
||||
+")
|
||||
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/matio-config.cmake"
|
||||
+ DESTINATION share/matio
|
||||
+)
|
||||
@@ -1,28 +0,0 @@
|
||||
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
|
||||
@@ -2,30 +2,39 @@ vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO tbeu/matio
|
||||
REF "v${VERSION}"
|
||||
SHA512 358318a249e22f5228516309d267593b8da9005de015dc0f59645fbfd7a5001e10be9144f32437acc2f6921d952e03adbaf8b9ca5b6620e191346bb569c04780
|
||||
SHA512 170a97fa639f16f1290c1fa7b15f4b10296db216a35d901ebd75141c462db9cf4243b4fffa6aa823eed0a33aa8c5a927f562487a1558867c53f11f343d673f10
|
||||
HEAD_REF master
|
||||
PATCHES fix-dependencies.patch
|
||||
PATCHES
|
||||
cmake-config.diff
|
||||
)
|
||||
|
||||
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED)
|
||||
|
||||
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
||||
FEATURES
|
||||
extended-sparse MATIO_EXTENDED_SPARSE
|
||||
mat73 MATIO_WITH_HDF5
|
||||
mat73 MATIO_MAT73
|
||||
mat73 VCPKG_LOCK_FIND_PACKAGE_HDF5
|
||||
zlib MATIO_WITH_ZLIB
|
||||
extended-sparse MATIO_EXTENDED_SPARSE
|
||||
pic MATIO_PIC
|
||||
zlib VCPKG_LOCK_FIND_PACKAGE_ZLIB
|
||||
)
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
OPTIONS ${FEATURE_OPTIONS}
|
||||
OPTIONS
|
||||
${FEATURE_OPTIONS}
|
||||
-DMATIO_BUILD_TESTING=OFF
|
||||
-DMATIO_PIC=OFF # Flags provided by the toolchain
|
||||
-DMATIO_SHARED=${BUILD_SHARED}
|
||||
-DMATIO_USE_CONAN=OFF
|
||||
MAYBE_UNUSED_VARIABLES
|
||||
VCPKG_LOCK_FIND_PACKAGE_HDF5
|
||||
VCPKG_LOCK_FIND_PACKAGE_ZLIB
|
||||
)
|
||||
|
||||
vcpkg_cmake_install()
|
||||
vcpkg_copy_pdbs()
|
||||
vcpkg_cmake_config_fixup()
|
||||
|
||||
set(prefix "${CURRENT_INSTALLED_DIR}")
|
||||
set(exec_prefix [[${prefix}]])
|
||||
@@ -37,12 +46,10 @@ if(NOT VCPKG_BUILD_TYPE)
|
||||
set(includedir [[${prefix}/../include]])
|
||||
file(INSTALL "${SOURCE_PATH}/matio.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig")
|
||||
endif()
|
||||
vcpkg_copy_pdbs()
|
||||
vcpkg_fixup_pkgconfig()
|
||||
|
||||
vcpkg_copy_tools(TOOL_NAMES matdump AUTO_CLEAN)
|
||||
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
||||
file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
|
||||
|
||||
file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
|
||||
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
matio can be imported via CMake FindPkgConfig module:
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(matio REQUIRED IMPORTED_TARGET matio)
|
||||
target_link_libraries(main PRIVATE PkgConfig::matio)
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "matio",
|
||||
"version": "1.5.28",
|
||||
"version": "1.5.29",
|
||||
"description": "MATLAB MAT File I/O Library",
|
||||
"homepage": "https://github.com/tbeu/matio",
|
||||
"license": "BSD-2-Clause",
|
||||
@@ -8,6 +8,10 @@
|
||||
{
|
||||
"name": "vcpkg-cmake",
|
||||
"host": true
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-cmake-config",
|
||||
"host": true
|
||||
}
|
||||
],
|
||||
"default-features": [
|
||||
@@ -34,9 +38,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"pic": {
|
||||
"description": "Enable position-independent code (PIC), i.e., compilation with the -fPIC flag"
|
||||
},
|
||||
"zlib": {
|
||||
"description": "Check for zlib library",
|
||||
"dependencies": [
|
||||
|
||||
@@ -1104,9 +1104,7 @@ mapnik:arm64-uwp = cascade
|
||||
mapnik:x64-uwp = cascade
|
||||
marble:x64-uwp = cascade
|
||||
mathgl[hdf5,qt5]:arm64-windows = cascade
|
||||
matio[hdf5,mat73]:arm64-uwp = cascade
|
||||
matio[hdf5,mat73]:arm64-windows = cascade
|
||||
matio[hdf5,mat73]:x64-uwp = cascade
|
||||
matio[hdf5,mat73](uwp) = cascade
|
||||
mdl-sdk:x64-uwp = cascade
|
||||
mesa[default-features,gles1,gles2,offscreen,opengl]:x64-uwp = cascade
|
||||
mesa[llvm]:x64-uwp = cascade
|
||||
|
||||
25
scripts/test_ports/vcpkg-ci-matio/portfile.cmake
Normal file
25
scripts/test_ports/vcpkg-ci-matio/portfile.cmake
Normal file
@@ -0,0 +1,25 @@
|
||||
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO tbeu/matio-eigen-example
|
||||
REF 5bbc27b18d544dcbdd7bfb821e4ef843301d4a95
|
||||
SHA512 c74ef6ee94a1c2723bef4868a36894b6431acd5806386284a4be3c5a43c573edcb2d477bc23031f56f5110e231b1ff2d5aa227e79845f1b7a7b50909a905c303
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
vcpkg.diff
|
||||
)
|
||||
|
||||
vcpkg_download_distfile(EIGEN_MATIO_HEADER
|
||||
URLS "https://github.com/tbeu/eigen-matio/raw/b29e109083b9836471565f8d06f44a76a11d0def/MATio"
|
||||
FILENAME "tbeu/matio-eigen-MATio-b29e109"
|
||||
SHA512 06c7fe74a8e91d08dba6ff804ee0c925130d9280c916cf8d4c739f4c7dbf421cb00225783fa22e1e02bac03c49ed024dcc35fef0d8edeec7a724ce3406f3fbf1
|
||||
)
|
||||
file(COPY_FILE "${EIGEN_MATIO_HEADER}" "${SOURCE_PATH}/include/MATio")
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
OPTIONS
|
||||
"-DEIGEN_MATIO_DIR=${SOURCE_PATH}/include"
|
||||
)
|
||||
vcpkg_cmake_build()
|
||||
18
scripts/test_ports/vcpkg-ci-matio/vcpkg.diff
Normal file
18
scripts/test_ports/vcpkg-ci-matio/vcpkg.diff
Normal file
@@ -0,0 +1,18 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 9085a40..e3a885e 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -10,7 +10,7 @@ endif()
|
||||
|
||||
set(LIBS_DIR ${CMAKE_CURRENT_BINARY_DIR}/libs)
|
||||
set(EIGEN_MATIO_URL https://raw.githubusercontent.com/tbeu/eigen-matio/master/MATio)
|
||||
-set(EIGEN_MATIO_DIR ${LIBS_DIR}/include)
|
||||
+set(EIGEN_MATIO_DIR "${LIBS_DIR}/include" CACHE FILEPATH "Directory of the MATio C++ header")
|
||||
set(EIGEN_MATIO_DEST ${EIGEN_MATIO_DIR}/MATio)
|
||||
if(NOT EXISTS EIGEN_MATIO_DEST)
|
||||
file(DOWNLOAD ${EIGEN_MATIO_URL} ${EIGEN_MATIO_DEST})
|
||||
@@ -27,4 +27,3 @@ target_compile_features(${EXAMPLE_LIB_NAME} PUBLIC cxx_std_17)
|
||||
set_target_properties(${EXAMPLE_LIB_NAME} PROPERTIES CXX_EXTENSIONS OFF)
|
||||
|
||||
enable_testing()
|
||||
-add_subdirectory(test)
|
||||
18
scripts/test_ports/vcpkg-ci-matio/vcpkg.json
Normal file
18
scripts/test_ports/vcpkg-ci-matio/vcpkg.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"name": "vcpkg-ci-matio",
|
||||
"version-string": "ci",
|
||||
"description": "Port to validate matio",
|
||||
"homepage": "https://github.com/microsoft/vcpkg",
|
||||
"license": "MIT",
|
||||
"dependencies": [
|
||||
"eigen3",
|
||||
{
|
||||
"name": "matio",
|
||||
"default-features": false
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-cmake",
|
||||
"host": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -6249,7 +6249,7 @@
|
||||
"port-version": 0
|
||||
},
|
||||
"matio": {
|
||||
"baseline": "1.5.28",
|
||||
"baseline": "1.5.29",
|
||||
"port-version": 0
|
||||
},
|
||||
"matplotlib-cpp": {
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "94836a0a5609ab334bcdb6a158c83e9ec621e6fc",
|
||||
"version": "1.5.29",
|
||||
"port-version": 0
|
||||
},
|
||||
{
|
||||
"git-tree": "5c71cc6dfae2b864ddd497890b6723145a250cbf",
|
||||
"version": "1.5.28",
|
||||
|
||||
Reference in New Issue
Block a user