ImportC + -H = bindings
Kapendev
alexandroskapretsos at gmail.com
Fri Apr 24 02:56:31 UTC 2026
On Friday, 24 April 2026 at 02:09:00 UTC, Lance Bachmeier wrote:
> I'm not sure how it compares to clonoa, but I let ImportC do
> the translation of C headers in their entirety using the -Hf
> switch. Now, that isn't going to generate .di files that work,
> but I have a program that parses the files to remove duplicate
> definitions, functions with keywords as names, and whatever
> else doesn't work. It's at the point that it can automatically
> convert any C header I try.
It does the same thing! And yeah, by default the `.di` files will
not always work because of D keywords or of some other weird
translations like:
```
alias void foo_func_type(...)
```
The solution for this one is to change the order of things: name
first and then the function type.
In general you have to clean the `.di` files.
Here are some things that I can control with my script (some
options are not exposed in the CLI):
```d
struct ClonoaArgs {
string compiler = defaultCompiler;
string headerPath;
string moduleName;
string[] headerIncludes;
string[] headerPrefixes;
string[] opaqueStructs;
bool removeRepeatedEnums;
string moduleSymbolHeader = defaultModuleSymbolHeader;
string indentation = defaultIndentation;
string[string] typeMap;
string[] typeSkipList;
string[] funcSkipList;
string[] lineSkipList;
}
```
More information about the Digitalmars-d
mailing list