Boost logo

Boost-Build :

From: Edward Diener (eldiener_at_[hidden])
Date: 2019-07-10 00:57:53

On 7/9/2019 11:30 AM, Edward Diener via Boost-build wrote:
> On 7/9/2019 8:47 AM, Edward Diener via Boost-build wrote:
>> I would like to include different bjam code, using the 'include' rule,
>> into a jamfile based on the address-model used when b2 is invoked. Is
>> this doable, and if so how ? Would it make any difference if the
>> jamfile involved were 'user-config.jam' ?
>> Essentially I need to use different toolset definitions depending on
>> whether the compile is for 32 bit or 64-bit code and I thought the
>> easiest way to do this would be just to include different toolset
>> definitions into my user-config.jam depending on the address model. If
>> there is a better way to do this within bjam I would love to know what
>> it is. Most of the toolsets involved are compilers but some are just
>> other tools such as zip libraries like bzip2 and there is also the
>> python toolset.
>> My current method of doing this is to link a 32-bit user-config to
>> user-config.jam when I do 32-bit compile and a 64-bit user-config to
>> user-config.jam when I do a 64-bit compile, but this has always seemed
>> to me to be kludgy even if it does work, and I am hoping that bjam has
>> the ability to solve this without my kludge.
> Solved ! Evidently with 'using' rule for the various compilers and tools
> I can add target alternatives in the requirements section and so can
> have <address-model>32 and <address-model>64 to achieve my goal.

I spoke too soon. Using the <address-model>32 and <address-model>64 as
target alternatives in toolset 'using' statements does not work to
distinguish 'using' statements with the same name and version. Instead I
get from Boost Build the error of:

error: duplicate initialization of xxx with the following parameters etc.

for toolset 'xxx', as in

using xxx : nnn : some_command : <address-model>32 ;
using xxx : nnn : some_other_command : <address-model>64 ;

I guess I must go back to my original kludge as there seems to be no way
to have Boost Build pick out the correct toolset based on whether I am
compiling with a 32-bit or 64-bit address model.

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at