On 07.08.2015 18:37, Tom Kent wrote:
On Tue, Jul 28, 2015 at 1:49 AM, Vladimir Prus
wrote: Hi Tom,
On 28-Jul-15 3:44 AM, Tom Kent wrote:
Looking at the boost-build code, this batch file is created in
build/src/tools/msvc.jam:744. This file will create the temp file in question by grabbing the output of a run of the visual studio environment setup routine (i.e. C:\Program Files (x86)\Microsoft Visual Studio 14.0\vc\vcvarsall.bat amd64). However, for the msvc-14.0 / address-model=64 case, it seems that it is combining the 32 bit and 64 bit variables into one causing this issue (and other variables that shouldn't be set by the amd64 run, such as FrameworkVersion32 and FrameworkVersion64...just running the above command only sets FrameworkVersion64).
Is it possible that build is running the 32 bit variable file, then running the 64 bit instance?
local original-vars = [ SPLIT_BY_CHARACTERS [ SHELL set ] : "\n" ] ; local new-vars = [ SPLIT_BY_CHARACTERS [ SHELL "$(setup-script) $(setup-options)>nul && set" ] : "\n" ] ; local diff-vars = [ set.difference $(new-vars) : $(original-vars) ] ;
So we should be capturing the changes that the particular setup script does to environment; it's not obvious why this would start to fail with VS 14 - adding
ECHO $(diff-vars) ;
after the above lines might be illuminating. I'm installing VS 14 now, but it might take a day till I get to debug.
- Volodya
Does anyone know if any progress has been made on this? I think that the 1.59 release is just around the corner, and I would consider this a show-stopper as a user can't do a build for msvc-14.0 with address-model=64.
+1, I agree with the 'show-stopper' here.