|
Boost-Build : |
From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-09-04 06:27:38
Hi Peter,
> >The deprecated syntax is the one with "@" symbol in target-id. The
> >problem is that sometimes this warning is generated when you refer to
> >a non-existent file.
> >
> >I don't know how this can be caused. Could you give more details on
> >your test case? Or archieve and send it?
>
> I have attached our setup. In order to get it to run, you have to:
Thanks for a reproduction recipe. The problem is rather hairy:
root --+---- intTest
|
|---- util
|
|----- boostTestUtils
You run bjam in intTest and Jamfile in boostTestUtils invokes
get-cpp-source-files. The location of boostTestUtils relative to bjam
invocation directory is:
../util/boostTestUtils
after globbing you get
../util/boostTestUtils/RootTestSuiteHolder.cpp
which you pass as the source to "lib" rule. But the lib rule assumes that
sources are given relative to the source directory of the project where lib
rule is used. But when you're in boostTestUtils dir, there's no
../util/boostTestUtils/RootTestSuiteHolder.cpp
file! Jam has some sloppyness that allows the cpp file to compile ok, but the
code which looks up targets gets confused.
The solution is to strip directory in in get-cpp-sources:
return $(prjFiles:D="") ;
But wait a minute! I'm making a change which will add 'glob' function to
Jamfile context... done. Simple
exe a : [ glob *.cpp ] ;
works now.
- Volodya
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