GIR as in the rust utility to generate rust bindings of gobject based libraries had a concept of min_cfg_version; which is the minimum supported version of a library. APIs defined before it are not generated and so, every comparison is based on that version number even when it shouldn't be

- For Builder pattern generation, a property might be originated from another library such as Gtk (in case of Handy/Adwaita) or Gio or whatever really. So we should compare the version of the said property to the min_cfg_version_of_the lib but as you might imagine, it wasn't doing that so you got very weird config guards added where there shouldn't exist or they should be named differently.

- For GObject definitions where an object extends another object /implements an interface in a specific version of the lib (didn't do so in older releases) and that new object/interface is originated from a different lib (like GtkApplication implements GActionMap)

Both those issues are now fixed in gir and the bindings of the broken libs were re-generated


If you like the work we have been doing at gtk-rs; feel free to donate at

· · Web · 0 · 9 · 2
Sign in to participate in the conversation

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!