Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-12-14 06:03:44


Hi Pedro,

> I vote for approach 2. We've been using a hacked-in solution similar to
> that one with very good results.
> What I think is important is the ability to fully customize the name,
> both in terms of its form, and to
> which of the files generated for a target it applies. E.g.
> - Linux: libA.so.1.2.3
> - Mac OS X: libA.1.2.3.dylib
> - Windows: A.1.2.3.dll, A.1.2.3.pdb and A.lib
> - etc.

This means the name should be complete customisable by means of some
user-provided rule. Currently, the <tag> feature can be used to specify a
rule which returns the right name. If the rule prototype is:

rule tag-rule ( original-name * : original-suffix ? : target-type ? :
properties )
{

}

Then the rule can return new name using whatever rules, including those you
list above. It will also be possible for one project to add version to lib
names, and for another project to don't add it. What do you think?

The only question is how to conveniently specify in top-level Jamfile that
specific <tag> feature should apply to lib targets.

I was thinking about

project top :
requirements <main-target-type>LIB:<tag>@some-naming-scheme
;

but this won't work for target which type is *derived* from "LIB", or if lib
generator is used when building main target which type is not "lib".

- Volodya

 


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