Oh My Gentool [v0.0.1] (Yet another binding generator)

evilrat evilrat666 at gmail.com
Tue Oct 23 07:42:56 UTC 2018


(Oh My) Gentool v0.0.1 is just released!

What it is?
Binding generator with C/C++ support(primarilly C++) that outputs 
D bindings.

Internally it is using clang for all heavy lifting work. The code 
itself is not yet stabilized but is open for everyone to play 
with or use in just any way possible.

This is the first public "stable" release.


Why?
I just needed something that generates stuff to use C++ libs from 
D.
Doing this manually is tiresome, so I made this tool to help me 
automate the process. It is not fully automated, I just use it to 
generate bulk of the code, and then do necessary fixes and 
clean-ups here and there.
I know there is already several tools existed, but I don't care 
much about C(which they DO care) and others proves to be too 
complicated to set up or use (or both)(esp. on Windows)
It just generates bindings that is available for tools to parse 
to provide autocompletion.


Target audience?
- Let's be honest - Me, and only me.

But here is who might be interested as well:
- Experienced C++ users who wants to move to D for whatever 
reason but needs their usual stuff that doesn't have analogs in 
D. (sorry, but no Boost support and so on)
- Gamedev people?
- Any other users who wants to try this fancy C++ library but 
lacks C++ skills.
- As for me - I did it to reuse existing gamedev and content 
pipeline libs, because reimplementing all the stuff in D is not 
feasible and impractical from maintenance point of view. Not 
mentioning that not all of them provided with sources.


Limitations?
There are many.
The most important is - It doesn't tries to 'port' STL or BOOST 
or any other template-only library.
It is targeting D 2.083 with namespaces as string by default, 
there is no option to generate legacy style namespaces. (ok, 
there is hacky one, but it is hard coded option)
Not all language contructs are supported, or their support 
quality is poor.
Now when I added separate preprocessor pass one can enjoy the 
full genuine C++ compilation speed(lack of), yay \0/


Links:

Sources is available at
https://github.com/Superbelko/ohmygentool

There is few short wiki pages available at
https://github.com/Superbelko/ohmygentool/wiki

This release comes with prebuilt binaries for Linux x64 and 
Windows x64
https://github.com/Superbelko/ohmygentool/releases

(Since I'm linux noob this linux binaries might be screwed up and 
just not work at all)


More information about the Digitalmars-d-announce mailing list