Boost logo

Boost-Build :

From: Andrey Melnikov (melnikov_at_[hidden])
Date: 2005-08-19 04:37:51


Alexey Pakhunov wrote:
> Andrey Melnikov wrote:
>
>
>>- ms-platform-sdk.jam module declares psdk-related features and defines
>>common rules;
>>- msvc.jam and other toolsets reuse ms-platform-sdk.jam code and contain
>>toolset-specific psdk code;
>
>
> Yes.

Don't call ms-platform-sdk.jam "a toolset" then. I wonder what is the
correct term for it? A module?

>>>It seems PSDK
>>>setup script 'SetEnv.cmd' tries to detect MS Visual Studio installation
>>>and fails if nothing was found. When two VS installations are installed
>>>only the latest will be detected and used.
>>
>>Why do you think so? I looked at Windows Server 2003 SP1 SDK and
>>SetEnv.cmd looks for %DevEnvDir% and %MSVCDir% first. vcvars32.bat from
>>VC7.1 sets both, and vcvars32.bat from vc8 sets only %DevEnvDir%.
>
>
> I have VS 8 and VC++ Toolkit installed. When I compile using VC++
> Toolkit and PSDK, neither %DevEnvDir% nor %MSVCDir% present.
> vcvars32.bat from VC++ Toolkit does not set any of them. As result
> SetEnv.cmd runs PSDK\Setup\VCDetect.exe which detects VS 8 installation
> and calls vcvars32.bat from it.
>
> So what I get is:
>
> VC++ Toolkit\vcvars32.bat
> VS 8\vcvars32.bat
> PSDK\setenv.cmd
> cl ...
>
> Actually combining your explanation and mine a solution (for VC++
> Toolkit configuration) can be found. We can set %DevEnvDir% and
> %MSVCDir% before calling SetEnv.cmd.

setenv.cmd checks for "%MSVCDir%\..\Common7\IDE\" and other folders. So
for VC Toolkit it probably won't work either so we should set the
environment ourselves if setenv.bat still . The problem is that the
environment must be set after calling vcvars32:

VC++ Toolkit\vcvars32.bat
set INCLUDE=
set LIB=
set PATH=
cl ...

Fortunately it's possible with current $(prefix) framework.

Also I wonder

- Should we set PATH for PSDK?
- Should we call vcvars32?
- Does vcvars32 offer us any advantages over setting the INCLUDE, LIB
and PATH manually even for Studio itself?
- Do we really need to set the evironment? Would adding -I $(STDHDRS)
option be better? Just like we do for Borland toolset?

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