giD v0.9.2 GObject Introspection binding repository and generator with Gtk4 support
Element Green
element at kymorphia.com
Mon Feb 17 15:12:39 UTC 2025
On Monday, 17 February 2025 at 12:46:17 UTC, Dejan Lekic wrote:
> On Monday, 17 February 2025 at 12:32:29 UTC, M. M. wrote:
>> I am confused (and not an expert in GUI), but -- does this
>> replace gtkD? (and, cudos, it looks like a fine work!)
>
> It is not replacing gtkD (yet), but it is definitely an
> alternative to gtkD that _includes_ Gtk4 which most of us are
> waiting for. On top of Gtk, gid also contains Arrow for an
> example, something I need too...
Yes, exactly correct. It does not replace gtkD (yet). I began by
working with girtod and an unreleased version of gtkD for Gtk4
and spent months trying to improve it. I eventually abandoned the
effort and decided it would be easiest to start from scratch on a
new binding utility, which is now gidgen (after about a year of
work in my spare time). It is much more advanced than girtod and
requires less manual binding work. The intention is to automate
as much as possible. Most of the manual effort is to fix issues
with the underlying GIR API descriptions, in the form of XML
patch commands embedded as comments in D source definition files.
Adding the Arrow binding took a few hours at most, the majority
spent trying to build Arrow. It required a few XML patches to
designate some return string arrays as null terminated which were
automatic suggestions from gidgen and are missing in the GIR API,
in order to get 100% coverage.
I think it would make sense to bind Gtk3 as well, since gtkD
still leaves much to be desired. This will likely require some
changes to gidgen to take the version into account when resolving
dependencies. Was just thinking about this actually.
Thanks to all who tried it out. giD and gidgen could use some
more unittests and I suspect there could be some memory leaks,
which I still need to track down. I'm looking forward to
continuing to expand access to other libraries with GObject
Introspection APIs to D. I was thinking of starting on gstreamer
next. I welcome any other suggestions as well and would be happy
to put in the effort or assist if someone wants to learn how to
create bindings with gidgen.
More information about the Digitalmars-d-announce
mailing list