diff --git a/CMakePresets.json b/CMakePresets.json index bc47b61..0c80f25 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -373,6 +373,9 @@ "Linux", "Darwin" ] + }, + "environment": { + "CMAKE_FRAMEWORK_PATH": "/opt/homebrew" } }, { diff --git a/cmake/HDF5TargetUtils.cmake b/cmake/HDF5TargetUtils.cmake index a876673..f9c0a8e 100644 --- a/cmake/HDF5TargetUtils.cmake +++ b/cmake/HDF5TargetUtils.cmake @@ -150,7 +150,7 @@ function(h5pp_get_modern_hdf5_target_name) get_target_property(HDF5_LINK_LIBS HDF5::HDF5 INTERFACE_LINK_LIBRARIES) foreach(tgt ${HDF5_X_TARGETS};${HDF5_C_TARGET}) if(NOT ${tgt} IN_LIST HDF5_LINK_LIBS) - message(STATUS "LINKING HDF5::HDF5 INTERFACE ${tgt}") + message(DEBUG "LINKING HDF5::HDF5 INTERFACE ${tgt}") target_link_libraries(HDF5::HDF5 INTERFACE ${tgt}) endif() endforeach() @@ -159,4 +159,31 @@ function(h5pp_get_modern_hdf5_target_name) else() message(FATAL_ERROR "Failed to define a standard HDF5::HDF5: Could not find any known HDF5 targets or variable HDF5_LIBRARIES") endif() + + + # Check whether zlib or szip are linked to the targets, and make sure we can find them + foreach (tgt ${HDF5_X_TARGETS};${HDF5_C_TARGET}) + message(STATUS " ${lib}") + get_target_property(HDF5_INTERFACE_LINK_LIBRARIES ${tgt} INTERFACE_LINK_LIBRARIES) + mark_as_advanced(HDF5_INTERFACE_LINK_LIBRARIES) + foreach (ltgt ${HDF5_INTERFACE_LINK_LIBRARIES}) + message(STATUS " ${ltgt}") + if(ltgt STREQUAL "ZLIB::ZLIB") + set(HDF5_ZLIB_REQUIRED REQUIRED) + endif() + if(ltgt STREQUAL "z") + set(HDF5_z_REQUIRED REQUIRED) + endif() + if(ltgt STREQUAL "SZIP::SZIP") + set(HDF5_SZIP_REQUIRED REQUIRED) + endif() + if(ltgt STREQUAL "sz") + set(HDF5_sz_REQUIRED REQUIRED) + endif() + endforeach() + endforeach () + find_package(ZLIB ${HDF5_ZLIB_REQUIRED} QUIET) + find_package(SZIP ${HDF5_SZIP_REQUIRED} QUIET) + find_library(LIBRARY_Z z ${HDF5_z_REQUIRED} QUIET) + find_library(LIBRARY_SZ sz ${HDF5_sz_REQUIRED} QUIET) endfunction() \ No newline at end of file diff --git a/cmake/SetupDependencies.cmake b/cmake/SetupDependencies.cmake index 8410afb..1fc7a89 100644 --- a/cmake/SetupDependencies.cmake +++ b/cmake/SetupDependencies.cmake @@ -82,3 +82,4 @@ if(TARGET SZIP::SZIP) endif() target_link_libraries(deps INTERFACE HDF5::HDF5) +