Pelagicore / gdbus-codegen-glibmm

Code generator for C++ D-Bus stubs and proxies using Giomm/Glibmm
GNU Lesser General Public License v2.1
23 stars 25 forks source link

Split common.h.templ into private and public headers and "seal" the private one #62

Open martin-ejdestig opened 5 years ago

martin-ejdestig commented 5 years ago

As e.g. GLib (and GTK does). Only is supposed to be included and all other headers are guarded by:

#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif

commoh.h.templ currently contains TypeWrap and Error if any error annotations are specified in introspection XML. TypeWrap is not meant to be used externally (if I have understood things correctly) while Error is.

Could put *TypeWrap in common_private.h.templ and require FOO_BAR_OR_SOMETHING to be defined before it is included. Error would still stay in commoh.h.templ.

martin-ejdestig commented 5 years ago

Could also keep everything in a single header and just have a section of commoh.h.templ wrapped in an #ifdef guard.

Would avoid adding yet another file that user has to specify when invoking generator from build systems. Also a less intrusive change.