HDF5 exposed in public interface but libraries marked as private in CMakeLists.txt

Issue #911 resolved
Prof Garth Wells created an issue

HDF5 is exposed publicly in dolfin/io/HDF5Interface.h, but the HDF5 libraries are marked a PRIVATE in dolfin/CMakeLists.txt. This can causes link failures.

Should HDF5 be exposed or hidden in the public interface? @chris_richardson @michalhabera

Comments (5)

  1. Michal Habera

    I think it should not be exposed. It's exposition is called HDF5Interface.h. We should forward-declare hdf5 classes and methods and #include in source file or we should apply "pimpl" idiom.

    HDF5 is also exposed in XDMFFile.h.

  2. Michal Habera

    This could be simply solved if methods are un-inlined and put to HDF5Interface.cpp. Any ideas how important is inline optimization here, @garth-wells ? Is not explicit inlining prohibited by some compiler setting?

  3. Log in to comment