Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2006-02-10 04:19:11


Hi Daniel,
> I am trying to use <implicit-dependency> to bring in a header generated by
> the msvc mc generator.
>
> The person who helped me figure this out told me I had to include both
> <implicit-dependency>msg
> <dependency>msg
>
> This seemed a bit odd to me, but the dependant won't compile unless either
> <dependency> is given or the msg target is built first.
>
> Does this seem right? Is there a bug with <implicit-dependency>?
>
> Attached is a test case (requires msvc toolkit).

Thanks for providing the testcase! But you forgot to tell how to use it ;-)
If I run "bjam", the "msg" target is built, just because it's part of the same
Jamfile and is not marked as "explicit".

I suppose you meant running "bjam test". There are points to make:

1. The '<implicit-dependency>' won't automatically build 'msg'. It just means
'I think there's header in 'msg' that this target depends on'. This is by
design (though if you think that's wrong design, I'm open to arguments).

2. The *header* should be automatically generated, because it's used from
'log.cpp'. It's not generated, and that's a bug. Pretty subtle one, because
if you say "bjam", the dependency between generated header and the
including .cpp file will be correctly found, so this bug does not reproduce
on whole-project builds.

I attach a patch to fix that issue. It will soon be committed, but I'd need to
write tests first so this might take more time.

- 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