Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2003-01-20 11:04:59

Vladimir Prus <ghost_at_[hidden]> writes:

> I was thinking about reuse of toolset definitions when declaring other
> toolsets. The conclusion is that it's probably quite simple. Basically,
> toolset can:
> - change some variables (for example Kylix can redefine
> COMPILER_NAME and LINKER_NAME, provided base borland toolset uses those),
> - add some flags
> - rewrite some rules

One might also imagine blocking the application of certain flags from
the base toolset, however I think I'd prefer to encourage toolset
refactoring so that this blocking would be unneeded before we
are forced to implement that feature.

> I think that V2 heavily uses generators, this is the right unit of
> inheritance. We have provide some means to inherit generator. For example,
> borland toolset contains:
> generators.register-compiler borland.compile : CPP : OBJ : <toolset>borland ;
> Toolset for kylix can contain:
> toolset.inherit-generator borland.compile ;
> This would create new generator "kylix.compile" which will be equal to
> "borland.compile" except that required properties will contain <toolset>kylix
> instead of <toolset>borland.

Hmm, I'm not sure that's all there is to it.

It's common to need to set build requirements for a target based on
matching any one of a family of toolsets. I think that with handling
multiple toolset versions in a single toolset file we will probably
see that phenomenon lessened, but I'm not certain it will disappear
completely. We ought to give it some thought, anyway.

> All flags relevant to this generator will be inherited too. Lastly, all rules
> will be imported. E.g if borland.jam had:
> actions compile
> {
> }
> then the kylix module will get its own copy of this rule, which will use the
> COMPILER_NAME variable defined in the kylix module.
> I guess there should also be a convenience rule, which will inherit all
> generators from other module.

I think that will be used most often.

> Does it sound reasonable?


I can do a little bit today; do you have a job for me?


David Abrahams
dave_at_[hidden] *
Boost support, enhancements, training, and commercial distribution

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at