Thread overview
Best way to use C library
May 19, 2023
Maximilian Naderer
May 19, 2023
jmh530
May 19, 2023
user456
May 22, 2023
Guillaume Piolat
May 22, 2023
Theo
May 24, 2023
Maximilian Naderer
May 19, 2023

Hello guys,

So what’s currently the best way to use a big C library?

Let’s assume something like

cglm
assimp
glfw

ImportC doesn’t really work for such huge libraries, I’ll investigate further. Deimos is outdated or there are no bindings. I know that there is a dub package for glfw which works fine. But how would I do something for assimp or cglm. The dub assimp package is quite outdated.

Am I stuck with manually creating interface files either by hand or automation?

I’m hope somebody could give me some insights. Thank you !

Kind regards from Austria
Max

May 19, 2023

On Friday, 19 May 2023 at 18:31:45 UTC, Maximilian Naderer wrote:

>

Hello guys,

So what’s currently the best way to use a big C library?

Let’s assume something like

cglm
assimp
glfw

ImportC doesn’t really work for such huge libraries, I’ll investigate further. Deimos is outdated or there are no bindings. I know that there is a dub package for glfw which works fine. But how would I do something for assimp or cglm. The dub assimp package is quite outdated.

Am I stuck with manually creating interface files either by hand or automation?

I’m hope somebody could give me some insights. Thank you !

Kind regards from Austria
Max

If there are issues using those libraries, you should report the bugs.

May 19, 2023

On Friday, 19 May 2023 at 18:31:45 UTC, Maximilian Naderer wrote:

>

Hello guys,

So what’s currently the best way to use a big C library?

Let’s assume something like

cglm
assimp
glfw

ImportC doesn’t really work for such huge libraries, I’ll investigate further. Deimos is outdated or there are no bindings. I know that there is a dub package for glfw which works fine. But how would I do something for assimp or cglm. The dub assimp package is quite outdated.

Am I stuck with manually creating interface files either by hand or automation?

I’m hope somebody could give me some insights. Thank you !

Kind regards from Austria
Max

If you aim static linking or static binding then you can give dstep a shot.

Otherwise and if you have the time to then dont forget to report the problems founds
when you have tried ImportC.

May 22, 2023

On Friday, 19 May 2023 at 18:31:45 UTC, Maximilian Naderer wrote:

>

Hello guys,

So what’s currently the best way to use a big C library?

Let’s assume something like

cglm
assimp
glfw

Now, if using a complex C++ libraries involves inlined C++ types, it will be a lot harder to create a nice D port.
A library like cglm almost must be ported, a bindings won't help here, since it's probably lots of inlined C++ types in headers. You can use the package inmath instead.

May 22, 2023
On Friday, 19 May 2023 at 18:31:45 UTC, Maximilian Naderer wrote:
>
> ..
> I’m hope somebody could give me some insights. Thank you !
>
> Kind regards from Austria
> Max

DConf Online '22 - Translating C to D (Dennis Korpel)

https://www.youtube.com/watch?v=654rSPaIA0o

May 24, 2023
On Monday, 22 May 2023 at 22:22:50 UTC, Theo wrote:
> On Friday, 19 May 2023 at 18:31:45 UTC, Maximilian Naderer wrote:
>>
>> ..
>> I’m hope somebody could give me some insights. Thank you !
>>
>> Kind regards from Austria
>> Max
>
> DConf Online '22 - Translating C to D (Dennis Korpel)
>
> https://www.youtube.com/watch?v=654rSPaIA0o

Thank you very much for the insights so far. I'll check them all out!

BR,
Max