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