HighFive icon indicating copy to clipboard operation
HighFive copied to clipboard

Add the option for using blosc filter

Open LauZanMo opened this issue 1 year ago • 1 comments

See #978

This PR adds a custom blosc filter and has been tested in create_dataset_double.cpp in examples folder.

LauZanMo avatar Apr 15 '24 17:04 LauZanMo

To avoid the issue with forcing an optional dependency (blosc) on all users, we'll need to rework the PR. I think we can safely move all blocs related code to highfive/blosc.hpp. Ensure we include the header for blosc. The wrapper for H5Pset_filter stays in h5p_wrapper.hpp.

To fix the build-system maybe the following works:

  1. Temporarily remove all CMake code.
  2. For testing only add it back similar to how boost and Eigen are handled.
  3. Setup CI that installs blosc and runs the tests.

This has the advantage (for us) that we don't specify how to find/link to blosc, it's left up to the user. This is different everywhere and we're likely to get it wrong if blosc doesn't have *-config.cmake files. The solution @LauZanMo shows presumably works very well for their usecase, but unfortunately for a library that's not suitable. We can always add a target highfive::blosc if needed, but we can't take it away.

1uc avatar Apr 16 '24 07:04 1uc