Boost logo

Boost :

Subject: Re: [boost] Default variants on windows
From: Vladimir Prus (vladimir_at_[hidden])
Date: 2009-04-09 02:22:10


Peter Dimov wrote:

> Vladimir Prus wrote:
>> Per:
>>
>> https://svn.boost.org/trac/boost/ticket/2899
>>
>> we have a problem that the default set of libraries
>> build on Windows does not match autolink defaults, which
>> causes confusion. In that issue, John say that the only
>> sensible solution for Windows is to build all possible
>> variants by default (IIRC, a total of 6). I would like
>> other Windows developers to comment if that is sensible
>> solution. In particular, is it best to build all possible
>> variants that user might need, or build just the variants
>> that autolink needs by default, so that user can build other
>> later.
>
> There is no autolink default (except for link=static).

I have used "autolink default" as a shorthand for "whatever variant is
picked by autolink for an IDE project with default options"

> Autolink links to
> whatever matches the current compiler options. For VC++ 7.1 or earlier, this
> means 6 variants:
>
> * runtime-link=static, threading=(single|multi), variant=(debug|release)
> * runtime-link=dynamic, threading=multi, variant=(debug|release)
>
> For VC++ 8.0 or later, the variants are four, as the runtime is always
> multithreaded:
>
> * runtime-link=(static|dynamic), threading=multi, variant=(debug|release)
>
> The default in the IDE for new projects is, I believe,
>
> * runtime-link=dynamic, threading=multi, variant=(debug|release)

Is 'debug' vs 'release' queried at project creation, or two variants are
created automatically?

> but VC++8 DLL RTL deployment is somewhat painful so most people immediately
> switch to static (or forget and later switch to static, cursing quietly,
> when it's reported to them that the program doesn't start with
> initialization error 0xC00something.)

Hmm. I get an impression that most folks who report issues don't have mt-gd
variant, which is dynamic runtime, as far as I can see. And given that autolink
defaults to static linking, I suspect that the most reasonable default variant
on Windows would be:

  link=static runtime-link=dynamic threading=multi variant=debug

After all, a person who know to switch project to runtime-link=static is likely
to realize he wants to rebuild Boost with proper options.

And here's a crazy idea -- maybe the autolink can output the message saying that
Boost.Build option it assumes? It has this information anyway.

- Volodya

>
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk