|
Boost-Build : |
Subject: Re: [Boost-build] hardcode-dll-paths in shared lib
From: Ling Li (liling_at_[hidden])
Date: 2011-08-26 11:22:22
Sorry to revive such an old conversation. I am having the same problem,
i.e., I have two shared libs A and B. B links to A, and will be used as a
Python extension.
lib A
: [ glob-tree *.cpp ]
: : <include>. <library>.//A
;
python-extension B # in another Jamfile
: B.cpp .//A
: <hardcode-dll-paths>true # <dll-path>.//A
;
However, <hardcode-dll-paths>true doesn't really work on a shared library
project, as that is disabled in boost-build/tools/builtin.jam:
# Hardcode DLL paths only when linking executables.
# Pros: do not need to relink libraries when installing.
# Cons: "standalone" libraries (plugins, python extensions) can not
# hardcode paths to dependent libraries.
if [ $(property-set).get <hardcode-dll-paths> ] = true
&& [ type.is-derived $(self.target-types[1]) EXE ]
Although I understand the pros (of not needing to relink), I think this
should be a choice of the users. In other words, Boost.Build shouldn't try
to be too smart here. I think we should remove the restriction on type
being EXE. (If that sounds too aggressive, maybe we should add a new
feature called hardcode-dll-paths-in-lib?)
Another question is: how can I manually hardcode the dll path of a dependent
project, like "<dll-path>.//A"? I know it doesn't work that way, since .//A
will only give the path to the source, not the building directory (e.g.,
./bin/gcc-4.6.1/debug).
Thank you for your time.
-- View this message in context: http://boost.2283326.n4.nabble.com/hardcode-dll-paths-in-shared-lib-tp2688925p3771177.html Sent from the Boost - Build mailing list archive at Nabble.com.
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