Boost logo

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

Boost-testing list run by mbergal at meta-comm.com