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
case...

>>>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] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution
 

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