|
Boost Testing : |
From: David Abrahams (dave_at_[hidden])
Date: 2007-03-27 13:28:08
on Tue Mar 27 2007, Martin Wille <mw8329-AT-yahoo.com.au> wrote:
> My question was which of the several way to invoke bjam with toolsets
> arguments is the canonical one.
There is no canonical way. There are three ways, two of which will
induce autoconfiguration
> I still think not use --toolset= leaves some room for confusion.
^^^^^^^
Sorry, doesn't parse. Do you mean "not using?"
> What happens if I name the build target for my
> generic caching component 'gcc'? What is 'bjam gcc' supposed to mean in
> that context?
That is certainly an issue, but it goes beyond toolset names, because
yyy
is a shorthand on the command-line for
xxx=yyy
for *any* implicit feature xxx. Implicit features are specially
designated because their value names are deemed sufficiently distinct
that they deserve recognition without the feature name. Toolset is
just one of several implicit features.
> A related question is: why are there several ways of passing arguments
> to bjam? I'm sure I'm not the only one who gets confused by this.
I knew it would be confusing, but not everyone agreed with me.
--foobar and --foo=bar
are regular options that could control anything in principle. It's
used for things like telling bjam that, when running tests, it should
invoke them under a particular debugger.
foo=bar
is the syntax for setting the value of features in the build request.
You should look at the Boost.Build documentation to fully understand
the significance of features, but they control build properties like
multithread compatibility, static or dynamic linking, and other
elements of the command-line that is eventually used to invoke tools
like compilers and linkers.
Oh, and options like
-j3
are low-level options recognized by the bjam executable itself.
-- Dave Abrahams Boost Consulting www.boost-consulting.com