Boost logo

Boost-Build :

From: Rene Rivera (grafik666_at_[hidden])
Date: 2003-07-09 03:56:58


[2003-07-08] Vladimir Prus wrote:

>Hello Pedro,
>
>> If not, and if you think it is worth it, I am avalable to try and
implement
>> it.
>
>Thanks a lot for your attitude! If you're willing to implement <tag> you're
>most welcome. Of course, I'll be glad to help.
>
>I've actually almost forgotten the details about <tag> feature and I recall
in
>V1 it works not only in stage targets, but also in regular targets (like
>exe).

Yes, it works on any main target.

>So I guess it's better to start by asking Rene how it works in V1 and
making a
>short description of proposed V2 semantic, so that everybody could be sure
>what's going to be implemented. What do you think?
>
>Rene, I'm specifically interested why we need tag in regular targets *and*
in
>stage targets.

Answering that last one first... It's needed in regular targets because that
is the way, in V1, that it stages linked targets (DLLs, EXEs) directly to
the stage dir. Doing the link step again but with the staged name is
required because various platforms use the name for linking and loading.

The basic mechanism is to map feature names that appear in the target to
strings which get inserted between the basename and extension of the final
target name. For example <tag><debug>_debug, checks if the "debug" is in the
subvariant spec of the target and appends "_debug" to the name. Or to put it
in one sentence. It maps the features in the target subvariant to suffix
strings on the target file name.

It's very simple code, as much is in V1, the naming is done in
boost-base.jam/rename-target rule. Surprisingly it's documented ;-)

For V2 we already have the linking directly to the stage (if I remember
correctly). So it's only the naming that's needed, and the interface to it.

The naming part I intended to use the modifier concept. -- The current
modifiers implementation is a placeholder ;-) -- But basically if we can
integrate some sort of target modifier (name/propeties/sources/etc) into the
target building. We can then write the <tag> support in terms of it.

Hmm, I just realized I'm rambling... it's late, and I need sleep... ask
questions if the above doesn't make much sense.

-- grafik - Don't Assume Anything
-- rrivera (at) acm.org - grafik (at) redshift-software.com
-- 102708583 (at) icq

 


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