Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2003-01-20 10:09:41

Vladimir Prus <ghost_at_[hidden]> writes:

>>> No problem, it's possible to use other projects in Jamfile. However,
>>> other project wants to declare new target types and new generators and
>>> new features. It's not possible to allow that everywhere.
>> Why not? because of the possibility of a name conflict?
> This is the minor problem. The biggest one is: you've called 'generate' on
> top-level project, and when generating a target three levels deeper, target
> from another project is referenced. You load that project and its project
> root, which declares new features and new generators.
> If those features and generators were visible from the very start, then:
> 1. The features would be included in build request.
> 2. The generators might have being used for already built targets.
> In fact, we're changing something which is very important for
> generation process, in the middle of that project. If we don't protect
> against it, the system will be brittle.

Agreed; it should not be possible to reference new projects during
generation. It was your remark that "It's not possible to allow that
everywhere" that confused me; I guess you meant "at every time"?

Anyway, I don't think this imposes a great restriction on the things
we can do, does it? It doesn't seem to be a limitation for the QT

>>>Looks like the first one is rather technical. We'd need to allow
>>>"qt.jam" to create fake project (i.e. not related to any Jamfile),
>>>and declare targets there.
>> That sounds like one good approach. We could also define some sort of
>> "global" project for this purpose.
> Which is another good approach. BTW, we need some "global project" anyway.
> For example,
> bjam unit-tests
> should build global target "unit-tests", and not require that you define that
> target in every project.

OK, that sounds like a plan. Should we do just one or both of these?
It strikes me that capability modules such as qt might benefit from
having their own projects.

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