|
Boost : |
From: Joaquín Mª López Muñoz (joaquin_at_[hidden])
Date: 2005-06-14 09:40:20
Excuse my being a little insistent on this,but I think the problem
should be addressed one way or another, as it's causing tons
of regressions.
I've prepared a patch for tools/build/v1/boost-base.jam (attached).
Is it OK to commit?
Original message:
autolink assumes the following toolset tags for libraries generated
under the MSVC familiy of compilers:
6.0, 6.5 --> "v6"
7.0 --> "vc7"
7.1 --> "vc71"
8.0 --> "vc80"
Yet tools/build/v1/boost-base.jam does the following:
local include-minor-version = YES ;
switch $(toolset)
{
case borland* : toolset-tag += bcb ;
case como* : toolset-tag += como ;
case cwpro8* : toolset-tag += cw 8 ;
case cwpro9* : toolset-tag += cw 9 ;
case cw-* : toolset-tag += cw ; include-minor-version = ;
case darwin* : toolset-tag += ;
case edg* : toolset-tag += edg ;
case gcc* : toolset-tag += gcc ;
case intel-linux* : toolset-tag += il ;
case intel-win32* : toolset-tag += iw ;
case kcc* : toolset-tag += kcc ;
case kylix* : toolset-tag += bck ;
case metrowerks* : toolset-tag += cw ;
case mingw* : toolset-tag += mgw ;
case mipspro* : toolset-tag += mp ;
case msvc* : toolset-tag += vc 6 ;
case sunpro* : toolset-tag += sw ;
case tru64cxx* : toolset-tag += tru ;
case vacpp* : toolset-tag += xlc ;
case vc[678][_]* :
{
toolset-tag += vc ;
toolset-tag += [ MATCH "vc([678])[_]([0123456789]*)" :
$(toolset) ] ;
}
case vc[678]* :
{
toolset-tag += vc ;
toolset-tag += [ MATCH "vc([678])" : $(toolset) ] ;
}
case * :
toolset-tag += [ MATCH "^([^-]*)" : $(toolset) ] ;
}
if $(include-minor-version)
{
toolset-tag += [ MATCH
"[-]([0123456789]+)[_.]([0123456789]*)" : $(toolset) ] ;
}
else
{
toolset-tag += [ MATCH "[-]([0123456789]+)[_.][0123456789]*"
: $(toolset) ] ;
}
which does not match autolink expectations for the following toolsets
adhering to the new naming conventions:
vc-6_5 --> vc65 (expected vc6)
vc-7_0 --> vc70 (expected v7)
I guess it suffices to apply the following postrule in boost-base.jam
switch $(toolset-tag)
{
case vc6* : toolset-tag = vc6 ;
case vc70 : toolset-tag = vc7 ;
}
but someone more acquainted with bjam than me might come up with a
nicer reformulation.
Currently, this is breaking dozens of tests in the metacomm engine,
which recently switched to vc-6_5-stlport and vc-7_0 toolsets.
Do I commit this? Someone can tackle the issue more elegantly? Thank
you,
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
2672a2673,2681
>
> # boost/config/auto_link.hpp expects toolset tags that do not always
> # match the above algorithm for MSVC 6.x and 7.0.
> #
> switch $(toolset-tag)
> {
> case vc6* : toolset-tag = vc 6 ;
> case vc70 : toolset-tag = vc 7 ;
> }
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk