From: Phillip Seaver (phil_at_[hidden])
Date: 2006-09-05 12:04:35
Any thoughts on this? One of my co-workers worked around the problem by
doing a modules.poke of the requirements in the DLL build.jam and a
modules.peek in the exe build.jam, so they're still only defined in one
place, but I'd really like for this to work correctly.
Phillip Seaver wrote:
> I've got a setup like this, where the executable needs the usage
> requirements (includes, defines) of a DLL, but doesn't want to link
> against it.
> lib a : a/a.cpp : <link>static : : <include>a ;
> lib b : b/b.cpp a : <link>static : : <include>b ;
> lib c : c/c.cpp b : <link>shared : : <include>c ;
> exe d : d.cpp : <use>c <link>static ;
> The "<use>c" accomplishes this, except that it causes the executable
> to also link against a.lib, which I didn't expect and causes link
> errors with my particular libraries. c.dll links with a.lib and
> b.lib, as I expected, and d.exe does not link against c
> Is this a bug? Are my expectations invalid? :-) The real code is
> used on Windows, but this test case does the same thing with OS X.
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk