Boost logo

Boost-Build :

From: Andrey Melnikov (melnikov_at_[hidden])
Date: 2005-07-31 17:22:21


Alexey Pakhunov wrote:
> Hi,
>
> During the weekend I spent some time improving the 'msvc' toolset and
> the results I would say are quite good. :)
>
> The attached patch implements number of features:
>
> - Platform SDK + Visual Studio configurations;
> - Experimental support of amd64 and ia64 cross-compiling;
> - Updated msvc-config;
> - Some fixes in the resource compiler;
> - Support of .idl (This one is almost the same as the one I posted
> recently. The only difference is just a small bug fix);
> - Rules for building .mc files.
>
Cool. Some bad news for you:

- Recently I submitted my own bugfix-only patch (now including CVS diff)
which fixes some bugs in the toolset. So we should spend some time
merging our patches into one big one. Or to wait until first patch is
reviewed and incorporated, and then change the next patch properly. I
don't know which way is better.
>
> Now the 'msvc' toolset recognizes the following configurations features:
>
> - <toolset-version>: 6.0, 7.0, 7.1, 8.0;
> - <toolset-sdk>: studio, psdk;
> - <toolset-platform>: win2k, winxp, win2k3;
> - <toolset-arch>: i386, amd64, ia64.

- new feature names and values will need to be carefully selected and
pass a review in order to get accepted. See my discussion about
precompiled headers http://article.gmane.org/gmane.comp.lib.boost.build/9602

We are still looking for contributors who can review other compilers and
propose reasonable rationale for feature names and values for
precompiled headers.

For archiectures etc we need people who can research other compilers.
For example, gcc should have switches for different CPU architectures
already for a long period of time (e.g. MIPS/ARM etc).

>
> '<toolset-sdk>psdk' makes the toolset use Platform SDK headers,
> libraries and (for 64bit only) compiler.

SDK is too generic. toolset-mspsdk would be better.
>
> '<toolset-platform>' is meaningful only for PSDK-based configuration.
> The default value is 'win2k3'

I think we should reverse engineer the PSDK setvar.cmd switches and
check. I think that "platform" switch just #defines WINVER or something
like this. So built-in compiler should support it too.
>
> '<toolset-arch>' selects the target platform architecture. Sure this one
> works with PSDK only.
>
Only for now. We should remember that later this feature will work for
other toolsets too.
>
> 'msvc-config' was updated so it will try to detect all installed MSVC
> compilers and register all allowed configurations (both VS-only and
> PSDK-based). I didn't find any good way to detect location of the
> installed PSDK so users will have to pass the path to the
> 'msvc-config.init' rule. For example:
>
> import toolset : using ;
> import msvc-config ;
>
> using msvc-config : "D:\\Kits\\Platform SDK" ;

msvc-config is deprecated, isn't it? I think the autodetection should be
built into main MSVC toolset. Or we should have -config pseudo-toolsets
for other compilers too.

>
> I was able to test only VC+ Toolkit, VS 8 with PSDK for Win2K3 (all
> configurations). It would be nice to test other. The 64bit
> configurations are tested only for ability to generate .exe files.

I can test:
- MSVC 7.1. with and without PSDK
- MSVC 8.0 (Team System June CTP) without PSDK (beta itself is newer
than any available external PSDK so there's no practical use for VS8.0
Standard edition and higher with external PSDK yet)

We'll also will need a support for VC 8.0 built-in 64-bit compilers. I'm
ready to contribute when all current pending patches will be integrated
or at least reviewed.

Andrey

 


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