Hi,
I did try to generate C++ bindings for gobject-introspected
libraries. However, all I achieved before losing interest was
a gir parser written in python (you can see advertisement of
this in the list's archives).
I don't understand what you mean by 'why don't we use it in
mm projects instead of writing perl scripts'.
gobject-introspection provides two products for each library:
a XML file (gir) containing the definition of the API, and a
typelib where that definition is compiled (platform
dependent). For mm projects the gir files could be really
useful, and we could replace the current set of perl scripts
with a set of programs/scripts that parse the gir files and
generate the .defs files from them. But you cannot avoid
writing something to parse the XML gir files; note that
typelibs are platform dependent and therefore are not suitable
for our needs.
In my opinion, and I think in the opinion also of more
people, a first step would be to generate the .defs files from
gir files, writing a parser in perl, python, ... whatever.
A second step could be to, in addition to .defs files,
generate also the .hg and .ccg files from gir files. I think
this needs to add some flexibility for inserting hand-written
code, since APIs are not always that good and we may want to
make modifications, event to make them more C++-ish.
So, conclusion: mm projects could take advantage of
gobject-introspection for generating .defs files and even .hg
and .ccg files. We shouldn't, however, replace all that has
been done and come up with new API conventions; i.e. we
shouldn't get rid of RefPtr, GLib::Object, ... However,
gobject-introspection is not a panacea: in contrast with what
happens with interpreted languages, we still need to provide
separate packages for every wrapped library, i.e. we obviously
cannot provide dynamic bindings using typelibs.
As far as I know, someone wrote a Go bindings generator
from gobject-introspection; and also for Java.
I recently created a project on github (it is empty
nowadays) to write a gir parser that can output .hg and .ccg
files. This could be useful for wrapping, for example, new
classes. Instead of writing a bunch of
WRAP_METHOD/PROPERTY/SIGNAL statements by hand, that could
be easily automated from gir files. Therefore, if you decide
you want to go with gobject-introspection, please do not
hesitate to contact me if you need help :)
Best regards,
Juan.