|
Boost-Build : |
From: David Abrahams (dave_at_[hidden])
Date: 2002-08-21 16:44:15
From: "bill_kempf" <williamkempf_at_[hidden]>
> > Me neither. Isn't that the same as what happens when you do a
> clean first?
> > BTW, are you explicitly requesting the "test" target? Tests don't
> run as a
> > result of building "all"
>
> Not precisely. It only cleans up files/directories that it creates
> and thinks should be cleaned. If any files are left over the
> directories aren't removed.
You're right. "clean" is failing to remove some of the testing residue
files. I just fixed that, I think.
> It would be nice to have a distclean
> that clobbered the directory no matter what.
Wouldn't it?
> Also, it appears the output files from "run" aren't cleaned. So bin
> isn't deleted any more in any event.
I think I took care of that.
> Further, and this is the one I often find frustrating, clean also
> invokes clean on dependent projects. So cleaning
> $BOOST/libs/thread/test will also clean $BOOST/libs/thread/build and
> $BOOST/libs/test/build. It would be nice to have a target that only
> cleaned the current project, leaving dependent targets alone.
Sure would!
> Now that I'm done with asking for further enhancements, let's get
> back to the subject ;).
Whew!
> > > Another thing I notice is that only one target (including it's 4
> > > variants) is being built, and is named test_base.test. It
> appears
> > > that this is the target based on test_thread.cpp. The other 5
> > > targets aren't built or run at all.
> >
> > Perhaps because they're up-to-date?
>
> bjam -sTOOLS=vc7 clean
> bjam -sTOOLS=vc7 test
>
> Produces the following tree:
>
> bin
> test_base.test
> debug
> runtime-link-dynamic
> threading-multi
> runtime-link-static
> threading-multi
> release
> runtime-link-dynamic
> threading-multi
> runtime-link-static
> threading-multi
>
> Since I specified only one target, "test", it makes sense that only
> one was built.
No it doesn't. "test" is an abstract target like "all" or "exe", which
depends on a whole bunch of actual targets, namely all of the test results.
I've enclosed a listing of the commands executed when I build test, then
clean, then test again. I can't understand why it wouldn't be happening for
you, but you could look at the -d+12 output to see what decisions it's
making.
> What's not as obvious is why the target produced
> is "test_base.test", why the target for test_thread.cpp is this
> target, or what target name would be valid for, say, the target that
> builds test_condition.cpp. Seems like a case where I should RTFM,
> but it doesn't appear that the "run" target is documented.
It's documented in tools/buid/testing.jam only.
> Sorry to
> be a pest about this, but I need some more enlightenment.
You're not a pest; I'll try to help.
-Dave
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