Generating C Headers From D Code

Jack Stouffer jack at jackstouffer.com
Fri Aug 6 15:47:26 UTC 2021


On Thursday, 5 August 2021 at 17:02:33 UTC, Tejas wrote:
> On Thursday, 5 August 2021 at 16:28:35 UTC, Jack Stouffer wrote:
>> I need to generate plain C99 .h files from a D module's 
>> extern(C) declarations, so that I can link a DMD generated .o 
>> file with a C code base. Are there any automated tools which 
>> do this?
>>
>> I know the compiler has C++ header generation, and there's 
>> tons of tools which exist for importing C headers into D code. 
>> I'm not aware of anything which goes the other direction. 
>> Google wasn't much help either.
>
> I also can't find anything... until someone else comes with a 
> better answer, maybe you can do this:
>
> Use the ```-H``` compiler flag to generate ```.di``` files.
>
> Remove all the ```extern(C)``` decls in the .di files.
>
> Rename the file extension from ```.di``` to ```.h```
>
> Technically, it should work. Hopefully someone else knows 
> better.

Well, that's disappointing. I suppose everyone just makes there 
main file a D file when converting C projects so they don't have 
this problem.

Eventually I'll have to write a script which takes .di files and 
generates .h files, but doing it manually will have to work for 
now.


More information about the Digitalmars-d-learn mailing list