Boost logo

Boost :

Subject: Re: [boost] [build] Conditional sources and compiler options
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2013-05-05 18:33:52


On Sat, May 4, 2013 at 1:21 PM, Vicente J. Botet Escriba <
vicente.botet_at_[hidden]> wrote:

> Hi,
>
> The problem is that (if I'm not wrong)
> * the version is dependent on the user_config file :(
> * I don't know how to compare them
>
>
Thanks, Vicente. I've done what I wanted (you can see the result in
libs/log/build/Jamfile.v2), although this took a whole day long and the
result is far more verbose than I'd like. My experience with Boost.Build is
really terrible so far.

But I'm facing a new problem. While it works as expected on Linux and
Windows with 64 bit MSVC, with 32 bit MSVC I get the following error:

E:/Sources/_SVN/boost-trunk/tools/build/v2/build\virtual-target.jam:1099:
in virtual-target.register-actual-name from module virtual-target
error: Duplicate name of actual target:
<pstage\lib>libboost_date_time-vc110-mt-1_54.lib
error: previous virtual target {
common%common.copy-libboost_date_time-vc110-mt-1_54.lib.STATIC_LIB {
msvc%msvc.archive-libboost_date_time-vc110-mt-1_54.lib.STATIC_LIB {
msvc%msvc.compile.c++-gregorian\greg_month.obj.OBJ {
gregorian/greg_month.cpp.CPP } } {
msvc%msvc.compile.c++-gregorian\greg_weekday.obj.OBJ {
gregorian/greg_weekday.cpp.CPP } } {
msvc%msvc.compile.c++-gregorian\date_generators.obj.OBJ {
gregorian/date_generators.cpp.CPP } } } }
error: created from ./stage-proper
error: another virtual target {
common%common.copy-libboost_date_time-vc110-mt-1_54.lib.STATIC_LIB {
msvc%msvc.archive-libboost_date_time-vc110-mt-1_54.lib.STATIC_LIB {
msvc%msvc.compile.c++-gregorian\greg_month.obj.OBJ {
gregorian/greg_month.cpp.CPP } } {
msvc%msvc.compile.c++-gregorian\greg_weekday.obj.OBJ {
gregorian/greg_weekday.cpp.CPP } } {
msvc%msvc.compile.c++-gregorian\date_generators.obj.OBJ {
gregorian/date_generators.cpp.CPP } } } }
error: created from ./stage-proper
error: added properties: <address-model>32 <architecture>x86
<instruction-set>i686
error: removed properties: none
E:/Sources/_SVN/boost-trunk/tools/build/v2/build\virtual-target.jam:484: in
actualize-no-scanner from module object(file-target)@3254
E:/Sources/_SVN/boost-trunk/tools/build/v2/build\virtual-target.jam:134: in
class_at_virtual-target.actualize from module object(file-target)@3254
E:/Sources/_SVN/boost-trunk/tools/build/v2\build-system.jam:720: in load
from module build-system
E:\Sources\_SVN\boost-trunk\tools\build\v2/kernel\modules.jam:289: in
import from module modules
E:\Sources\_SVN\boost-trunk\tools\build\v2/kernel/bootstrap.jam:139: in
boost-build from module
E:\Sources\_SVN\boost-trunk\boost-build.jam:17: in module scope from module

The <address-model>32 <architecture>x86 <instruction-set>i686 properties
are added by my Jamfile, I suppose. The build succeeds if I explicitly
specify these properties in the bjam command line. I really have no idea
what is the problem here, please help.


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