Boost logo

Boost :

From: James Talbut (James.Talbut_at_[hidden])
Date: 2008-06-25 06:38:21


I haven't tested this fully yet, but isn't it as simple as getting the
command line for the architecture you want and then running the same
command.

So I got a command line from:
        Visual Studio 2008 x64 Win64 Command Prompt
And
        Visual Studio 2008 Command Prompt

And then I ran the same three commands in each:
        bjam define=_SECURE_SCL=0 --prefix="C:\Program Files
(x86)\Boost" --buil-type=complete -j9 clean
        bjam define=_SECURE_SCL=0 --prefix="C:\Program Files
(x86)\Boost" --buil-type=complete -j9 stage
        bjam define=_SECURE_SCL=0 --prefix="C:\Program Files
(x86)\Boost" --buil-type=complete -j9 install
(but with a different path for the x64 build).

That all seems to have worked (running VS2008 on Vista x64).

Jim
 

> -----Original Message-----
> From: boost-bounces_at_[hidden]
> [mailto:boost-bounces_at_[hidden]] On Behalf Of Stephen Nuchia
> Sent: 25 June 2008 11:30
> To: boost_at_[hidden]
> Subject: Re: [boost] [getting started] Windows 64-bit builds?
>
>
> > 2. Please get someone to tell me the answer to the question
> that you
> > want the guide to answer ;-)
>
> I've found that you need
> --toolset=msvc msvc/architecture=x86/address-model=64
>
> But I'm still having a great deal of trouble finding a
> command line that works reliably. I got everything built
> once but trying to build it again from inside my Visual
> Studio "solution" is going badly.
> Static/static works but most combinations of link and
> runtime-link involving at least one "shared" are failing with
> duplicate target errors. I'm trying to build --with-regex
> and --with-test; I've tried one command line and one per
> lib/link/runtime-link combination with no luck. I have found
> an intermediate set of notes but not my final notes from my
> previous go-round with bjam. Sigh.
>
> There are add-on tools, Compuware's Devpartner for instance,
> that when active want to rebuild all the code in a program
> that isn't part of a system library. Also, optimization
> choices like _SECURE_SCL, WPO/PGO, and omit_frame_pointer
> work better when you build custom support libraries to match
> the choices. This is a nightmare without automation.
>
> After quite a bit of messing around with it, writing the
> infrastructure to translate the settings from Visual Studio's
> build engine into bjam command line parameters, I'm leaning
> toward writing visual studio project files for the two
> precompiled libraries we depend on. It is a more
> maintenance-intensive solution in the long run but it might
> actually work. Bjam might too but that's apparently a matter of luck.
> Well, cargo-cult programming and luck.
>
> The "build" command of my "Makefile"-type project is (manually
> line-wrapped):
> for /F "tokens=1-3" %%i in (configs.txt) do (
> echo building %%i %%j %%k
> bjam --toolset=msvc-9.0 --build-dir="$(OutDir)boost" --with-%%i
> msvc/architecture=$(PlatformArch)/address-
> model=$(PlatformBitness)/link=%%j/runtime-link=%%k
> define=_SECURE_SCL=$(SecureSCLValue) -d0 $(BoostConfiguration)
> stage
> )
>
> The "rebuild" line is the same but add -a, the "clean" line
> is the same but add clean. Use the ... button at that shows
> up when you click in the command line text box to pop up a
> multiline script editing window.
> Join the bjam command text onto one line, no space before
> model. Use copy-and-paste with "All Configurations" and "All
> Platforms" selected to populate the rebuild and clean command
> lines, then edit each to add the modifiers.
>
> The boost.vcproj file is located in the root of the boost
> source tree and configs.txt, in the same directory, contains:
> regex static static
> regex shared shared
> regex static shared
> test shared shared
>
> The boost Makefile project inherits, in each Debug/Release
> cross-product
> Win32/x64 configuration, from a .vsprops (property sheet)
> file named for the configuration: e.g. Debug-Win32.vsprops.
> You set that up using the Property Manager window; there's
> apparently no way to do so using the regular property editing
> dialog for a Makefile project. In the property sheets define
> the PlatformBitness, etc macros appropriately.
>
> Like I said, the above isn't working completely, but it is as
> close as I've managed to come so far to what I need.
>
> Macro values in the .vsprops files should be:
> PlatformArch: x86 or ia64 (Itanium)
> PlatformBitness 32 or 64
> SecureSCLValue 0 or 1 (always 1 for debug builds)
> BoostConfiguration debug or release (lower-case of
> $(ConfigurationName))
>
> Here's the build log for one of the failing combinations.
> The 1> is the thread identifier added by the Visual Studio
> build engine running in multithreaded mode:
>
> 1>building test shared shared
> 1>c:/code/Version 9/boost/tools/build/v2/build\virtual-target.jam:996:
> in virtual-target.register-actual-name from module virtual-target
> 1>error: Duplicate name of actual target:
> <pstage\lib>boost_prg_exec_monitor-vc90-mt-1_35.dll
> 1>error: previous virtual target {
> common%common.copy-boost_prg_exec_monitor-vc90-mt-1_35.dll.SHA
> RED_LIB {
> msvc%msvc.link.dll-boost_prg_exec_monitor-vc90-mt-1_35.dll.SHA
> RED_LIB { msvc%msvc.compile.c++-execution_monitor.obj.OBJ {
> execution_monitor.cpp.CPP } } {
> msvc%msvc.compile.c++-debug.obj.OBJ { debug.cpp.CPP } } {
> msvc%msvc.compile.c++-cpp_main.obj.OBJ { cpp_main.cpp.CPP } } } }
> 1>error: created from ./stage-proper
> 1>error: another virtual target {
> common%common.copy-boost_prg_exec_monitor-vc90-mt-1_35.dll.SHA
> RED_LIB {
> msvc%msvc.link.dll-boost_prg_exec_monitor-vc90-mt-1_35.dll.SHA
> RED_LIB { msvc%msvc.compile.c++-execution_monitor.obj.OBJ {
> execution_monitor.cpp.CPP } } {
> msvc%msvc.compile.c++-debug.obj.OBJ { debug.cpp.CPP } } {
> msvc%msvc.compile.c++-cpp_main.obj.OBJ { cpp_main.cpp.CPP } } } }
> 1>error: created from ./stage-proper
> 1>error: added properties: none
> 1>error: removed properties: <address-model>32 <architecture>x86
> 1>c:/code/Version 9/boost/tools/build/v2/build\virtual-target.jam:453:
> in actualize-no-scanner from module object(file-target)@695
> 1>c:/code/Version 9/boost/tools/build/v2/build\virtual-target.jam:118:
> in object(file-target)@695.actualize from module
> object(file-target)@695
> 1>c:/code/Version 9/boost/tools/build/v2\build-system.jam:675: in load
> from module build-system
> 1>c:\code\Version 9\boost\tools\build\v2/kernel\modules.jam:267: in
> import from module modules
> 1>c:\code\Version 9\boost\tools\build\v2/kernel/bootstrap.jam:132: in
> boost-build from module
> 1>c:\code\Version 9\boost\boost-build.jam:11: in module scope from
> module
> 1>Project : error PRJ0019: A tool returned an error code from
> "Performing Makefile project actions"
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>

________________________________________________________________________
This e-mail, and any attachment, is confidential. If you have received it in error, do not use or disclose the information in any way, notify me immediately, and please delete it from your system.
________________________________________________________________________


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk