Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2005-08-05 14:00:08

Rene Rivera <grafik.list_at_[hidden]> writes:

> Vladimir Prus wrote:
>> 2. It's possible to do such auto-configuration with
>> using msvc ;
>> but I'm not sure if ordinary users want to have all installed toolsets
>> configured. Opinions?
> Well first we should define "ordinary users". For me that's someone who
> has just unpacked Boost and is about to run "bjam --v2 install" at the
> root, without making any configuration or other changes, i.e. a pristine
> start.


> With that in mind I would expect ordinary users to want that
> first bjam command to "just work".


> It should detect the likely singular toolset they have installed and
> use it without complaints. This brings up the possibility of doing
> three different things for this bare auto-detection:
> a) Detect all toolsets, and build using all of them. This has the
> drawback of a user possibly getting much more than what they expected
> from that install.

Please, no!

> b) Detect all toolsets, and build only with the latest version of each.

Most probably no! The ordinary naive user just wants to get a feeling
for how Boost works and doesn't want to wait for more than one toolset
to do its business.

> c) Detect all toolsets, and build only with a single latest toolset for
> the platform based on an ordered preference. For example on Windows we
> would prefer to use, in this order: msvc, intel, como, gcc, borland.

Very nice.

> d) All of the above. There's always a fourth choice ;-)

e) c, plus we print a little message telling people they can build
with the following specific toolsets by putting the name on the
bjam command-line.

> Wanting to always satisfy as many people as possible I would prefer
> to have a way of handling all (a), (b), and (c). And it could be
> done if we do (c) out of the box with a more intelligent default
> user-config. Having (a) available as "using all : all ;" for all
> toolsets and "using msvc : all ;" for individual ones. And having
> (b) available as "using all : default ;" and "using msvc :
> default;".

That's the wrong syntax for this purpose. "using" just configures a
toolset; it doesn't say what will be used to build with. I would say:

default-toolset msvc-* gcc intel-8.1 ;

Build with all versions of msvc, whatever the default (1st configured)
gcc version is, and intel-8.1, unless the user puts a toolset name on
the command-line.

IMHO almost nobody wants that kind of configuration anyway, and it
will degenerate to something like

default-toolset msvc ;

in real usage.

I'm slightly concerned about the special status we're according to
C/C++ compiler suites here. What happens if there are several
html->pdf conversion toolsets?

Dave Abrahams
Boost Consulting

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at