Boost logo

Boost-Build :

Subject: Re: [Boost-build] building the final library name...
From: Thomas Lehmann (t.lehmann_at_[hidden])
Date: 2010-01-19 09:16:15


Very sorry,

Unfortunately it is still not working. Here my actual script
I have changed the "decorate-target-name" to the one as shown last mail
from you. (bjam --version -> Boost.Build V2 (Milestone 12), Boost.Jam
03.1.17)

I'm calling it this way:

bjam -a address-model=32 target-os=windows --toolset=msvc

It seems that the tag mechanism does not have ANY effect.
By the way: On a linux machine with gcc-4.1.2 and bjam 3.1.16
I have the same problem with exactly the same project. Bjam does
not use the tag issue.

bjam -a address-model=32 target-os=linux --toolset=gcc

It does not make any difference whether I have the tag on the
target, on the project or both.

Jamroot:

import common ;

local HOSTNAME = [ modules.peek : HOSTNAME ] ;
HOSTNAME ?= dummy ;

project helloWorldProject
     : requirements <include>../libsTemplates
<include>../libsClass
<include>.
<define>_PROTOTYPING
<tag>@$(__name__).decorate-target-name
     : build-dir bin/$(HOSTNAME)/helloWorld
     ;

exe helloWorld
   : [ glob *.cxx ]
   : <tag>@$(__name__).decorate-target-name
   ;

install dist
   : helloWorld
   : <location>../Binaries/$(HOSTNAME)
   ;

rule decorate-target-name ( name : type ? : property-set )
{
   return [ common.format-name
<base> <toolset> <target-os> <address-model>
           : $(name) : $(type) : $(property-set) ] ;
}

Am 19.01.2010 13:18, schrieb Johan Nilsson:
> Thomas Lehmann wrote:
>
>>> Am 19.01.2010 08:50, schrieb Johan Nilsson:
>>>
>>>> Thomas Lehmann wrote:
>>>>
>>>>
>>>>> Why can not somebody - please - use a simple "hello world" example
>>>>> demonstrating how to define the jam file to produce the required
>>>>> result?
>>>>>
>>>>>
>>>> Could you post your latest attempt at a working jamroot as an
>>>> attachment?
>>>>
>>>>
>>> Of course. Here's the hello world example: (attachment)
>>> One Jamroot and a helloWorld.cxx file.
>>> I'm getting a helloWorld.exe only.
>>>
> What if you change:
> -----------
> rule decorate-target-name ( name : type ? : property-set )
> {
> return [ common.format-name
> <base> <property:target-os> <property:address-model>
> : $(name) : $(type) : $(property-set) ] ;
> }
> -----------
>
> - to -
>
> -----------
> rule decorate-target-name ( name : type ? : property-set )
> {
> return [ common.format-name
> <base> <toolset> <target-os> <address-model>
> : $(name) : $(type) : $(property-set) ] ;
> }
> ------------
>
> I think it should be fine to put the<tag> requirement in the exe target
> declaration. However, note my other post concerning the need for explicit
> usage of target-os and address-model. I included the "toolset" property just
> to make sure that the tagging takes some kind of effect.
>
> Regards / Johan
>
>
> _______________________________________________
> Unsubscribe& other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build
>
>


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk