Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2006-02-07 10:15:44


Hello!

In V2, we have a rule that if two targets with the same name are defined in
Jamfile, they are considered "alternatives" for the same target. There's an
algorithm to select, for a given build request, on of the alternatives.

The problem is that we don't have a way to declare to independents target that
produce file with the same name. Say, I want to produce main.foo and
main.bar. If I write:

   foo main : main.src ;
   bar main : main.src ;

V2 will think those are alternatives for the same target, and will complain.
If I change the name for any of the target, say:

   foo main : main.src ;
   bar main.bar : main.src ;

I'll get "main.bar.bar", not "main.bar".

I see two ways to solve the problem:

1. Automatically strip the suffix from main target name, when determining
basename of generated targets. So, it's possible to use:

  foo main.first : main.src ;
  foo main.second : main.src ;

and ".first"/".second" suffixes will be used only to resolve the ambiguity,
they won't affect the names of generated targets.

2. Allow to explicitly specify the basename of the generated target via some
feature, say, "<name>". So, user would have to write:

  foo main.first : main.src : <name>main ;
  foo main.second : main.src : <name>main ;

At the moment, I favour the first approach since it's easier for the user.
Anybody can comment, or offer any other idea?

- 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