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:24:41 PDT 2014


On Friday, 16 May 2014 at 01:16:46 UTC, Craig Dillabaugh wrote:
> 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

Some info on DUB can be found at:

http://code.dlang.org/


More information about the Digitalmars-d-learn mailing list