|
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.
Yep.
> With that in mind I would expect ordinary users to want that
> first bjam command to "just work".
Yep.
> 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 www.boost-consulting.com
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