From: Daniel Einspanjer (deinspanjer_at_[hidden])
Date: 2006-02-10 10:06:19
"Vladimir Prus" <ghost_at_[hidden]> wrote in message
> 1. The '<implicit-dependency>' won't automatically build 'msg'. It just
> '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).
I would expect msg to be built by a bjam test if the mc file changed since
the header is a dependant of that file. Would you agree?
If msg were a static lib instead of a shared lib, building an exe that
depended on msg should cause msg to be rebuilt if msg.cpp. In this case
however, I would agree that <implicit-dependency> alone shouldn't cause that
behavior. In that case, I think the exe target should have both
<implicit-dependency> and <dependency> to indicate the two subtly different
dependencies on the msg target.
> 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,
> if you say "bjam", the dependency between generated header and the
> including .cpp file will be correctly found, so this bug does not
> 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.
I applied your patch to my tree and it does cause my real world build to
work as I would expect even when removing the extraneous <dependency>msg.
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