Boost logo

Boost-Build :

From: Klaus Nowikow (e8827661_at_[hidden])
Date: 2006-07-12 04:46:58


Vladimir Prus wrote:
> On Friday 07 July 2006 17:21, Klaus Nowikow wrote:
>> I am trying to create a customized install rule - package.install
>> does not fit my needs. So I copied package.install and changed it
>> to what I need. The problem is that my rule does not work with
>> 'explicit' - it is called every time I perform a build.
> ...
>> # file Jamroot
>> import test ;
>> test.install installtest : [ exe hello : test.cpp ] ;
>> explicit installtest ;
>> # EOF
>
> Klaus,
> the behaviour I see is a bit different from you.
>
> I see the hello is built. The reason is that 'explicit' is not propagated to
> source targets. The above is the same as if you'd written:
>
>
> exe hello : test.cpp ;
> test.install installtest : hello ;
>
> without 'explicit' for 'hello'. So, hello is built. Probably, we should be
> making inline target explicit automatically, but I'm not sure.

You mean that the 'hello' target in
'test.install installtest : [ exe hello : test.cpp ] ;' should be explicit
automatically? Sounds good to me.
But that's not really the problem. I made 'hello' inline just to save a
line in the message. I just wanted the 'installtest' target to be explicit.
Sorry for the confusion.

> On the other hand, I don't see common.copy action executed. I've just tried
> with a freshly downloaded nightly build, and see no common.copy action still.
> Maybe, you're not using the nightly build? Can you run "bjam
> --debug-configuration" to make sure Boost.Build is loaded from the location
> you expect?

I just downloaded today's nightly build, just to make sure we both use the same
version. Btw, I had problems downloading the .zip file, so I used the .tar.bz2
version.
bjam --debug-configuration shows the correct paths.

> Maybe, you've omitted something from your project? It might be easier to just
> send entire project as archive file.

You mean the test project? Please find test.zip attached to this message.
I now wrote "exe hello..." as you did above, with the same results as
before -- common.copy is called.
It's strange that you get results different from mine. Could it be that I need
a newer version of bjam? 'bjam --version' prints

Boost.Build V2 (Milestone 10)
Boost.Jam 03.1.13

Btw, when I use the stage.install rule directly, as in

# file Jamroot
import stage ;
exe hello : test.cpp ;
stage.install installtest : hello ;
explicit installtest ;
# EOF

everything works as expected.

Thank you for your help,

Klaus




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