← Back to team overview

unity-dev team mailing list archive

Re: [Ayatana-dev] Smoke-GObject bindings project progress

 

On Thursday, May 26, 2011 06:03:09 PM Olivier Tilloy wrote:
> Hey Richard,
> 
> Richard Dale a écrit :
> > At UDS I had a meeting with David Barth and Florian Boucault about a
> > project to automatically wrap Gnome GObject based libraries for use with
> > Qt C++/QML projects. It could then be used to wrap a common library that
> > could be used by both the Unity-3D and Unity-2D shells.
> 
> I didn’t associate your name to your great contributions when Aurélien
> introduced us quickly at UDS, too bad, I would have loved to discuss the
> topic more with you.
> 
> > I made a start at UDS and got the project checked out of the KDE
> > playground SVN and built it against the latest version of GObject
> > Introspection. Since, UDS I've been working on it fulltime and it is
> > beginning to be *almost* useful. I've implemented function calling and
> > argument marshalling so that function, constructor and method calls now
> > work.
> 
> That sounds great, I can’t wait to try it out!
> 
> > […]
> > 
> > I've just created a Launchpad project at
> > https://launchpad.net/smoke-gobject/ and people are welcome to check out
> > the code and try it out. I probably need to add some build instructions
> > about which ubuntu dev packages need to be installed though.
> 
> That would be super helpful, I’m eager to play with it but like most of
> us I’m lazy and I don’t want to waste too much time getting it to work ;)
The main problem is that I wanted to include the sources for 'libeverything' 
in the QtTest unit test directory to test calling the functions in in it. But 
I haven't quite worked out the cmake rules to first generate the .gir file for 
it, and then the .typelib file from that. 

So at the moment you need to install the gir package for libeverything to get 
it working. I just looked at what gir packages I have installed:

nohair rdale 626% dpkg --get-selections |grep gir
gir-repository-dev                              install
gir1.0-everything-1.0                           install
gir1.0-freedesktop                              install
gir1.0-glib-2.0                                 install
gir1.0-json-glib-1.0                            install
gir1.0-pango-1.0                                install
libgirepository1.0-1                            install
libgirepository1.0-dev                          install

You will need gobject-introspection too of course. But if it doesn't work 
after you've added that little lot, I don't think it is worth wasting too much 
time bothering just yet as you say. 
 
> > When I started on the project I wrote these blogs:
> > 
> > http://www.kdedevelopers.org/node/3878
> > 
> > http://www.kdedevelopers.org/node/3894
> > 
> > http://www.kdedevelopers.org/node/3899
> > 
> > I'll try and write another blog soon to describe the recent progress in
> > more detail than I've done in this mail.
> 
> I remember reading those and playing a bit with your code when we first
> started to consider binding libbamf, libgconf and libdee in Qt at the
> very beginning of unity-2d.
It might be worth comparing these 'hand generated' bindings and seeing what 
things an auto-generated solution wouldn't be able to do in the way of making 
the api nice to use.

Then there is comparing runtime performance too. Maybe functions in something 
like 'libgconf' won't get called too often, whereas libbamf might be more 
performance critical, I don't know yet.

> Looking forward to the next instalments of the series.
OK, I'll try and write a blog about it this weekend, and also update this 
thread with any progress I make next week.

-- Richard



References