D Newbie Trying to Use D with Major C Libraries

Craig Dillabaugh via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu May 15 18:16:45 PDT 2014


On Thursday, 15 May 2014 at 22:25:47 UTC, Tom Browder via 
Digitalmars-d-learn wrote:
> I am a volunteer developer with the well-known 3D CAD FOSS 
> project BRL-CAD:
>
>   http://brlcad.org
>
> I have wanted to use D for a long time but I hadn't taken the 
> plunge.
> Yesterday I advertised to the BRL-CAD community my new project 
> to
> attempt to create D bindings for BRL-CAD's C libraries, and I 
> created
> a branch for the project.
>
> I have been looking for specific information on creating D 
> bindings
> from C headers for which there seems to be sufficient 
> information
> available, but I would appreciate recommendations as to the best
> method.  I have successfully built my first pure D program but 
> now
> need to test the feasibility of my project.
>
> What I have not seen yet is the exact way to build a D program 
> which
> uses D bindings and its matching C library.  I have just 
> created a
> Cookbook page on the D Wiki where I show my first attempt for a 
> real
> GNU Makefile as an example for the project.  The page link is 
> here:
>
>   http://wiki.dlang.org/Using_C_libraries_for_a_D_program
>
> I would appreciate it if an experienced D user would correct 
> that
> recipe so it should compile the desired binary source correctly
> (assuming no errors in the  input files).
>
> Thanks for any help.
>
> Best regards,
>
> -Tom


Hi Tom,
Sadly, I lack the expertise to give you much advice.  I did read 
through your Wiki posting though.  One thing that came to mind 
was you used GMake.  Perhaps you should consider using DUB.  For 
example here is the DUB config file for one of my library 
bindings (in my case I used a static library though):

{
         "name": "shplib",
         "description": "D bindings for Shapelib. Shapefile 
reader.",
         "homepage": 
"https://github.com/craig-dillabaugh/shplib.d",
         "homepage": "http://shapelib.maptools.org/",
         "importPaths":["."],
         "targetType": "sourceLibrary",
         "authors": [
                 "Craig Dillabaugh"
         ],
         "sourcePaths": ["./source"],
         "libs-posix" : ["libshp"]
}

A little nicer that GMake, more the "D way", and cross platform 
... I think.

Not sure exactly how you change that for linking to a .so lib.

Cheers,

Craig


More information about the Digitalmars-d-learn mailing list