Add the option for using blosc filter
See #978
This PR adds a custom blosc filter and has been tested in create_dataset_double.cpp in examples folder.
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:
- Temporarily remove all CMake code.
- For testing only add it back similar to how boost and Eigen are handled.
- 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.