Boost logo

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