Hello,
I'm not sure if this belongs here, so, sorry if it doesn't.
The problem I have is this as follows:
given...
...a C library, let's call it libfoo, which implements an API
...a D library, libbar, which wraps the libfoo API and provides
some additional convenience functions; in the DUB config I
specify target dynamicLibrary
...a D program which links against libbar
If I add libbar in the program's dub config like so:
dependency "libbar" version\"~master" path\"./libbar"
DUB will create a dynamic library if I invoke it in the library
directory but will make a static library if it's invoked from the
program directory, link against it and fail because it can't find
symbols from libfoo
if I specify a subPackage like so:
subPackage {
name "bar"
targetType "dynamicLibrary"
sourcePaths "./libbar/source/"
dflags "-I./libbar/source/"
}
and add it like so:
dependency ":bar" version="*"
DUB still only builds a static library and linking fails because
of missing libfoo symbols.
If I add a linker option to also link against libfoo it still
doesn't work, with the same symbols, even when libfoo is added
after libbar.
But even if that would work that's not the point.
The question is how do I have DUB honor the dynamicLibrary target
and create and link against libbar dynamically, which links to
libfoo dynamically.
Extra question - is there something like CMake to replace DUB?
I'm really not fond of DUB, at all.
Like any 1 click solution it's great when it works and when it
doesn't it's a major PITA.
Verbose output sucks because it's hard to read because it's
flooding dozens of pages with several lines long paths containing
UUIDs and a thousand times nested paths.
Also it's inconvenient that there are no man pages for DUB so I
need to go online whenever I need to refer to the manual. Sooo
annoying.
I appreciate the DUB team putting a ton of effort into it and
making it available for free and my intention is not to call it a
bad program or something. It's just incompatible with my work
flow.
So if anyone knows alternatives more in the spirit of make and
CMake, I'd like to try them...
Anyways, thanks for your time