|
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