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!