Use the install_headers feature of meson to only expose the headers (interfaces) you want the user to see.
In this case, I think at least Collection.h and Model.h (interface headers, not private headers) would go in there, and also Data and ModelDataPair (when changed to interface).
Note this means that when you type in ninja -C build/current install, the headers get thrown into the install subdirectory (which should be mulch).
This means a user can access a header file using #include <mulch/Collection.h> which is lovely and clean.
Use the install_headers feature of meson to only expose the headers (interfaces) you want the user to see.
In this case, I think at least Collection.h and Model.h (interface headers, not private headers) would go in there, and also Data and ModelDataPair (when changed to interface).
Note this means that when you type in
ninja -C build/current install
, the headers get thrown into the install subdirectory (which should bemulch
).This means a user can access a header file using
#include <mulch/Collection.h>
which is lovely and clean.