aboutsummaryrefslogtreecommitdiff
path: root/ports
diff options
context:
space:
mode:
authorSean Warren <s.warren@garvan.org.au>2019-03-06 06:09:22 +1100
committerPhil Christensen <philc@microsoft.com>2019-03-05 11:09:22 -0800
commita9f8430961f9d8bf2a9560767100bcc433004e24 (patch)
treecb9f11e607614da225986b3fd72070ccad42dcdf /ports
parenta51c0f42975fcf754dd9a2a934027e1617c4c6b5 (diff)
downloadvcpkg-a9f8430961f9d8bf2a9560767100bcc433004e24.tar.gz
vcpkg-a9f8430961f9d8bf2a9560767100bcc433004e24.zip
[hdf5] Use cmake wrapper to ensure consuming libraries link to szip (#5467)
* [hdf5] Use cmake wrapper to ensure consuming libraries link to szip in static build * [hdf5] Move hdf5 cmake code from vcpkg.cmake to vcpkg-cmake-wrapper * [hdf5] Do not force search in config mode * [hdf5] balance needs of vtk and kealib
Diffstat (limited to 'ports')
-rw-r--r--ports/hdf5/portfile.cmake6
-rw-r--r--ports/hdf5/vcpkg-cmake-wrapper.cmake29
2 files changed, 35 insertions, 0 deletions
diff --git a/ports/hdf5/portfile.cmake b/ports/hdf5/portfile.cmake
index 1da61178b..61235fab1 100644
--- a/ports/hdf5/portfile.cmake
+++ b/ports/hdf5/portfile.cmake
@@ -57,5 +57,11 @@ file(RENAME ${CURRENT_PACKAGES_DIR}/share/hdf5/data/COPYING ${CURRENT_PACKAGES_D
vcpkg_fixup_cmake_targets(CONFIG_PATH share/hdf5)
+configure_file(
+ ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake
+ ${CURRENT_PACKAGES_DIR}/share/hdf5
+ @ONLY
+)
+
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/hdf5/vcpkg-cmake-wrapper.cmake b/ports/hdf5/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 000000000..879d2516d
--- /dev/null
+++ b/ports/hdf5/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,29 @@
+if (NOT PROJECT_NAME STREQUAL "VTK")
+ _find_package(${ARGS} CONFIG)
+ # Fill in missing static/shared targets
+ foreach(HDF5TARGET hdf5 hdf5_hl hdf5_cpp hdf5_hl_cpp)
+ if(TARGET hdf5::${HDF5TARGET}-static AND NOT TARGET hdf5::${HDF5TARGET}-shared)
+ _add_library(hdf5::${HDF5TARGET}-shared INTERFACE IMPORTED)
+ set_target_properties(hdf5::${HDF5TARGET}-shared PROPERTIES INTERFACE_LINK_LIBRARIES "hdf5::${HDF5TARGET}-static")
+ elseif(TARGET hdf5::${HDF5TARGET}-shared AND NOT TARGET hdf5::${HDF5TARGET}-static)
+ _add_library(hdf5::${HDF5TARGET}-static INTERFACE IMPORTED)
+ set_target_properties(hdf5::${HDF5TARGET}-static PROPERTIES INTERFACE_LINK_LIBRARIES "hdf5::${HDF5TARGET}-shared")
+ endif()
+ endforeach()
+else ()
+ _find_package(${ARGS})
+endif()
+
+if("static" STREQUAL "static")
+find_package(SZIP CONFIG REQUIRED)
+foreach(HDF5TARGET hdf5 hdf5_hl hdf5_cpp hdf5_hl_cpp)
+ if(TARGET hdf5::${HDF5TARGET}-static)
+ if (TARGET szip-shared)
+ set_property(TARGET hdf5::${HDF5TARGET}-static APPEND PROPERTY INTERFACE_LINK_LIBRARIES szip-shared)
+ else ()
+ set_property(TARGET hdf5::${HDF5TARGET}-static APPEND PROPERTY INTERFACE_LINK_LIBRARIES szip-static)
+ endif ()
+ endif()
+endforeach()
+endif()
+