Boost logo

Boost-Build :

Subject: Re: [Boost-build] What constitutes equivalence for targets? target vs target.ext
From: Alexander Sack (pisymbol_at_[hidden])
Date: 2009-01-29 10:46:38


On Thu, Jan 29, 2009 at 10:34 AM, Vladimir Prus <ghost_at_[hidden]> wrote:
> On Thursday 29 January 2009 17:37:17 Alexander Sack wrote:
>> On Thu, Jan 29, 2009 at 4:52 AM, Vladimir Prus
>> <vladimir_at_[hidden]> wrote:
>> > Alexander Sack wrote:
>> >
>> >> On Wed, Jan 28, 2009 at 10:21 PM, Steven Watanabe <watanabesj_at_[hidden]> wrote:
>> >>> AMDG
>> >>>
>> >>> Alexander Sack wrote:
>> >>>>
>> >>>> I have a simple Jamfile that specifies two targets:
>> >>>>
>> >>>> exe target1 : target1.cc ;
>> >>>>
>> >>>> exe target1.foo : target1_foo.cc ;
>> >>>>
>> >>>> When I tried to build them I get:
>> >>>>
>> >>>> error: Duplicate name of actual target: ...
>> >>>> error: previous virtual target { long list of gcc% - I believe gcc.jam
>> >>>> dump }
>> >>>>
>> >>>> Why? This seems like a bug. I'm using bjam 3.1.14, Boost.Build Milestone
>> >>>> 12.
>> >>>>
>> >>>
>> >>> The executable is named target1.exe in both cases.
>> >>
>> >> But its not, I have target1.exe and target1.nodist.exe right? This is UNIX btw.
>> >
>> > "nodist"? I don't see "nodist" anywhere in your example.
>>
>> Err sorry, g/nodist/s/nodist/foo/g
>>
>> The targets I have are actually:
>>
>> exe target1 : target1.cc : <include>. <link>static ;
>>
>> exe target1.nodist : target1.nodist.cc : <include>. <link>static ;
>>
>> Bjam is claiming the above two are equal.
>
> Right. The extension in the target name is removed, and extension appropriate
> for the target type is appended.
>
>> If I use "_" instead of
>> ".", it works for the second target.
>
> Right, this is the best way.

Okay I realized all of this but still think its a bug.

Why is it removing the whole extension and not the last suffix? So if I have:

filename1.filename2.ext

shouldn't *.ext be parsed out for equivalence? What's the reasoning
behind this other than historic!!!

>
>> BTW I ran into this problem with
>> variants. If I use a build variant with a "_" instead of "-" (e.g.
>> product-release vs. product_release), it barfs as well.'
>
> This is too vague to comment on, sorry. I suspect this might be a completely
> different thing.

variant product_release : blah blah ;

project mproj
        : default-build product_release
        ;

works...however if I define it this way:

variant product-release : blah blah ;

It doesn't...

-aps


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