On Sunday, 17 September 2017 at 21:15:08 UTC, Matt Jones wrote:
Hey everyone,
I wanted to make a version of SQlite3 that uses Derelict to
load the sqlite3 DLL when I'm ready. I can't find any
instructions for how to make a basic Derelict style library. I
looked around at http://derelictorg.github.io/, but could not
find anything. Does anyone have any?
Thanks.
Just look at the existing Derelict packages. For a normal C
library like sqlite3, it's pretty straightforward -- declare
function pointers to ever public function in the API, translate
all the types, convert any macros to D functions, and create a
loader that extends derelict.util.SharedLibLoader and overrides
loadSymbols. Examples: DerelictLua, DerelictODE, DerelictFT.
You can also add support for static bindings by versioning out
the function declarations and the loader in favor or normal
function declarations. Examples: DerelictSDL2, DerelictGLFW3,
DerelictAL.
See the D wiki for links to articles that show how to translate C
headers.