vcpkg/ports/hdf5/vcpkg-cmake-wrapper.cmake
Sean Warren a9f8430961 [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
2019-03-05 11:09:22 -08:00

30 lines
1.3 KiB
CMake

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()