Boost logo

Boost-Build :

From: Rene Rivera (grafik.list_at_[hidden])
Date: 2005-08-05 10:22:35


Vladimir Prus wrote:

I'll comment on the non-auto-detection aspects a bit later...

> Auto-detection
> --------------
>
> If I understand correctly, the point of msvc-config experiment was two
> 1. Use registry for configuration
> 2. Configure all found toolsets.

Yes.

> Speaking of (1), if Windows users find that method to be better, then I don't
> know why not change msvc.jam accordingly.

I agree of course :-) We should always prefer the least fragile method.

> Speaking of (2) the feature is fine, but:
> 1. I don't want "import msvc-config ; " syntax. We need a clean interface.

No one does, not even me ;-)

> 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.

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

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.

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

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;".

> 3. There are two interface approached to request configuration of all
> versions:
>
> using msvc : all ; # 'all' is a special value for version.
> configure-all-versions msvc ;
>
> If "using" is renamed to "configure", then some word having "configure" as
> part can be used to request configuration of all versions. Say:
> "auto-configure", "configure-all", "configure-all-versions".

To expand and clarify what I mention above, this is what I would
consider ideal...

Detects and configures specific version of 'msvc':

using msvc : 8.0 ;

Detects and configures all versions of 'msvc':

using msvc : all ;

Detects and configures the latest version of 'msvc':

using msvc : default ;

Detects and configures all versions of all toolsets: (a)

using all : all ;

Detects and configures latest version of all toolsets: (b)

using all : default ;

Detects and configures the latest version of most preferred toolset of
the platform: (c)

using default : default ;

-- 
-- Grafik - Don't Assume Anything
-- Redshift Software, Inc. - http://redshift-software.com
-- rrivera/acm.org - grafik/redshift-software.com
-- 102708583/icq - grafikrobot/aim - Grafik/jabber.org
 

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