treeform / genny

Generate a shared library and bindings for many languages.
MIT License
224 stars 9 forks source link

Perhaps consider Gir support #35

Closed barcharcraz closed 2 years ago

barcharcraz commented 2 years ago

Gir is the metadata format that gnome emits for their libraries, while they are c libraries the gobject runtime is basically a different language than C in a similar way as C++ (but without any new language features).

https://gi.readthedocs.io/en/latest/

treeform commented 2 years ago

It appears that Gir is specifically a generator for GObjects to Rust using python. I get supporting Rust as a language for genny, but GObjects? Nim does not generate GObjects? Why get a python dependency?

"XML format called GIR" - I don't like XML...

I don't think we will support generating non-Nim-GObjects to Rust. Sorry!

Feel free to reopen if I don't get some thing.

barcharcraz commented 2 years ago

It has nothing to do with rust or python. gtk's doc generator generates the xml and projects like gtk-rs (or gir-to-d, lots of languages do this) parse it to generate bindings.

The idea would be for genny to emit the same xml for gobjects that are implemented in nim, this wouldn't have a python dependency (although I think the tool that takes those and emits C headers is python).

This is kinda a long term thing that would require effort on other gtk related bits of the nim ecosystem, and a little work elsewhere too., so maybe it's appropriate to close for now :D