Thinking of glib's GObject (and) Introspection API

Milan Crha mcrha at redhat.com
Thu Feb 18 03:13:38 PST 2016


	Hello,
I'd like to ask you about the GObject introspection code. There had
been done a Google Summer of Code project, named libical-glib, in 2014.
It provides a GObject wrapper on top of the libical C API, and it also
generates introspection code from the GObject wrapper code (and
function comments). Its aim was to provide the introspection for the
evolution-data-server's calendar code.

It's currently hosted in GNOME's git:
https://git.gnome.org/browse/libical-glib/

I'm wondering, would you be interested to bundle this code into the
libical sources directly? Like you have a C API, C++ API, python API,
java API,... thus add to them also the glib's GObject API, from which
can be generated the introspection easily.

The project works with XML files, which describe the API. The build
process consists of these steps:
a) build a code generator, which works with the XML files
b) process the XML files through the generator, which provides GObject
   sources with the functions' documentation and annotations
c) generate introspection files from the generated GObject files
   from the step b)

Having this part of the libical core, the libical would benefit from it:
- getting "native" GObject API
- getting developer documentation
- easier maintenance of the introspection code (because it's generated
  from the GObject API, without dealing with any extra definitions)
- libical API changes mean just .xml file updates, the rest is
  done automatically

I tried to run "make docs" in 2.0.0 libical and the result wasn't good,
the doxygen captured only a little of functions and sources. The
libical-glib project has an extensive developer documentation, with
compare of libical itself. I uploaded the documentation to a server,
you can check it yourself:
https://people.gnome.org/~mcrha/libical-glib/

What do you think?

	Bye,
	Milan




More information about the libical-devel mailing list