CMake and D

rempas rempas at tutanota.com
Mon Aug 8 05:42:16 UTC 2022


On Saturday, 6 August 2022 at 18:22:45 UTC, Jan Allersma wrote:
>
> I figured out a strategy to solve te problem:
>
> 1) Create a C++ function which will be called in D.
> 2) Build a static C++ library with CMake and add dependencies 
> (In my case: SDL libraries)
> 3) Create a new project (`dub init`).
> 4) Add these lines to `dub.json`:
>
> ```
> 	"dflags": ["-L-lstdc++"],
> 	"lflags": ["-Lbuild", "-lframework", "-lSDL2"],
> ```
>
> - `-L-lstdc++` is needed to use standard C++ functions.
> - `-Lbuild` is to add the `build` directory a library path 
> (this is the directory where my earlier compiled C++ library is 
> in).
> - `-lframework` is used to link my earlier compiled C++ library 
> `libframework.a`.
> - And finally `-lSDL2` because that is a dependency used by my 
> C++ library.
>
> Now I can add dependencies for my D code as well using `dub 
> add`!

Thank you for posting the solution! And you were fast enough to 
find
it yourself before anyone can arrive with the solution ;)

Happy coding my friend!


More information about the Digitalmars-d-learn mailing list