Yes, that works...... but not quite.


It seems like the problem is now, vcvars.bat is getting called with the wrong paramaters. Here is my standard VS2012  b2.exe run with --debug-configuration set:

c:\try2\boost_1_51_0>b2.exe toolset=msvc link=shared threading=multi --without-context --debug-configuration
notice: found boost-build.jam at C:/try2/boost_1_51_0/boost-build.jam
notice: loading Boost.Build from C:/try2/boost_1_51_0/tools/build/v2
notice: Searching C:\WINDOWS C:\Users\c_lramey C:\Users\c_lramey C:\try2\boost_1_51_0\tools/build/v2 C:/try2/boost_1_51_0/tools/build/v2/kernel C:/try2/boost_1_51_0/tools/build/v2/util C:/try2/boost_1
_51_0/tools/build/v2/build C:/try2/boost_1_51_0/tools/build/v2/tools C:/try2/boost_1_51_0/tools/build/v2/contrib C:/try2/boost_1_51_0/tools/build/v2/. for site-config configuration file site-config.ja
m .
notice: Loading site-config configuration file site-config.jam from C:/try2/boost_1_51_0/tools/build/v2/site-config.jam .
notice: Searching C:\Users\c_lramey C:\Users\c_lramey C:\try2\boost_1_51_0\tools/build/v2 C:/try2/boost_1_51_0/tools/build/v2/kernel C:/try2/boost_1_51_0/tools/build/v2/util C:/try2/boost_1_51_0/tools
/build/v2/build C:/try2/boost_1_51_0/tools/build/v2/tools C:/try2/boost_1_51_0/tools/build/v2/contrib C:/try2/boost_1_51_0/tools/build/v2/. for user-config configuration file user-config.jam .
notice: Loading user-config configuration file user-config.jam from C:/try2/boost_1_51_0/tools/build/v2/user-config.jam .
notice: Searching  for project-config configuration file project-config.jam .
notice: Loading project-config configuration file project-config.jam from project-config.jam .
notice: [msvc-cfg] msvc-11.0 detected, command: 'C:\program files (x86)\Microsoft Visual Studio 11.0\VC\bin\cl.exe'
notice: [msvc-cfg] msvc-10.0 detected, command: 'C:\program files (x86)\Microsoft Visual Studio 10.0\VC\bin\cl.exe'
notice: will use 'cl.exe' for msvc, condition <toolset>msvc-arm
notice: [msvc-cfg] condition: '<toolset>msvc-arm/<architecture>/<address-model>', setup: 'call "C:\program files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86 >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-arm/<architecture>/<address-model>32', setup: 'call "C:\program files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86 >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-arm/<architecture>x86/<address-model>', setup: 'call "C:\program files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86 >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-arm/<architecture>x86/<address-model>32', setup: 'call "C:\program files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86 >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-arm/<architecture>/<address-model>64', setup: 'call "C:\program files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_amd64 >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-arm/<architecture>x86/<address-model>64', setup: 'call "C:\program files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_amd64 >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-arm/<architecture>ia64/<address-model>', setup: 'call "C:\program files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_ia64 >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-arm/<architecture>ia64/<address-model>64', setup: 'call "C:\program files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_ia64 >nul

'
notice: [cmdline-cfg] Detected command-line request for msvc: toolset= msvc version=


I think the important stuff is what I put in red: Note that its using toolset msvs-arm, that is due to my project-config.jam and really isn't relavent except to get the build products into their own directory. The point being, a perfectly LEGAL way to invoke vsvars.bat is

c:\path\vsvars.bat arm >nul


I need to get that option into the matrix. It seems to me that msvc.jam around the setup-command stuff is the place to be working.... but I guess its not a clear case of "if-then". It is reading variables from somewhere else and manufacturing a command line.


Larry


From: Jürgen Hunold <jhunold@gmx.eu>
To: Larry E. Ramey <hydrajak@yahoo.com>; Boost.Build developer's and user's list <boost-build@lists.boost.org>
Sent: Monday, October 15, 2012 2:56 PM
Subject: Re: [Boost-build] cross compiling

Hi Larry,

On Monday, 15. October 2012 13:38:26 Larry E. Ramey wrote:
> So that in fact does seem to attempt a cross compile, except that b2 rejects
> it because its not a legal combo.
>
>
> I am in C:\try2\boost_1_51_0\libs\context\build\Jamfile.v2 looking at the
> combos and there isn't a
>
> "alias asm_context_sources" that corresponds to msvc and arm.
>
> I guess I'm not sure what to do here, I'm thinking I should make an entry,
> but clearly there is some machine code involved in each of these rules and
> I'm not exactly an assembly programer.

Yes, this is Boost.Context missing assembler code for msvc +arm.

You can try to avoid build Boost.Context by adding "--without-context" to your
command line.

I fear that Boost.Context has opened up a can of worms which these lots of
different assembler files.

Yours,

Jürgen
--
* Dipl.-Math. Jürgen Hunold  !
* voice: ++49 4257 300      ! Fährstraße 1
* fax  : ++49 4257 300      ! 31609 Balge/Sebbenhausen
* jhunold@gmx.eu            ! Germany