diff --git a/cmake/FindHDF5.cmake b/cmake/FindHDF5.cmake index 399b1c9f13..3230336a7d 100644 --- a/cmake/FindHDF5.cmake +++ b/cmake/FindHDF5.cmake @@ -88,7 +88,15 @@ if(NOT HDF5_INCLUDE_DIR OR NOT HDF5_LIBRARY_DIR) mark_as_advanced(HDF5_DIR) if(HDF5_DIR) message(STATUS "HDF5: found config at '${HDF5_DIR}'.") - set(HDF5_LIBRARIES hdf5_cpp-static) + if(TARGET hdf5_cpp-static) + set(HDF5_LIBRARIES hdf5_cpp-static) + elseif(TARGET hdf5_cpp-shared) + set(HDF5_LIBRARIES hdf5_cpp-shared) + elseif(TARGET hdf5::hdf5_cpp-shared) + set(HDF5_LIBRARIES hdf5::hdf5_cpp-shared) + else() + find_package(HDF5 REQUIRED COMPONENTS CXX) + endif() else() # If it failed, still try to find as a module. # E.g. on Ubuntu `libhdf5-dev` doesn't provie hdf5-config.cmake.