Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-01-20 10:22:33


David Abrahams wrote:

>>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"?

It might be still possible to reference new project, only they should not
declare generators/features.

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

I think that standalone projects is the first thing to be done. For example,
qt.jam might declare that it also wants to be a project. After that, new
targets can be declared in it.

What to do with global targets can be decided later.

- 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