Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2004-07-19 12:05:52


Vladimir Prus <ghost_at_[hidden]> writes:

> David Abrahams wrote:
>
>> >> No, what I mean is, "do you think the design where a top-level Jamfile
>> >> needs to refer to all sub-projects is a good idea?"
>> >
>> > I think for cases like installing this is necessary thing.
>>
>> Not if you don't have to build all sub-projects for an install.
>> Don't forget that for example in Boost there are tests and tools.
>
> Ok, I get you. Though we'd still need to enumerate all libraries.

Where? Why? How? (seriously)

>> I would rather see us allow the user to:
>>
>> - compute the names of subprojects that need to be built
>> - compute the names of subprojects that need to be installed
>> (these two could be as easy as allowing them to use [ glob ... ]
>> in the build/install specification)
>> - locate subprojects by 'id'
>
> Okay, sounds reasonable.
>
>> I don't know what "auto-compute subproject ids" means, but I don't
>> think it's needed if we have the above.
>
> I meaning adding prepending boost "boost" to project-ids of all libraries.

Are you talking about the capability of using relative project ids?

>> Yes, except that I think there's really no such thing as a global
>> id. It's just a question of which local id is chosen when a project
>> is "used"
>
> I think we'd still want global ids. Suppose I have 10 projects which use
> boost. They use ids like "/boost/foobar". I would like to put a single line
> to my user-config.jam which tells the location of Boost, and don't configure
> those 10 projects whenever I decide to rearrange my directories
> again.

Ah, yes, very good!

>> > So, essentially we'll have a global name->top-level Jamfile map, and
>> > project lookup below top-level name will be performed using some
>> > additional mechanism.
>> >
>> > Do I understand your proposal correctly? If yes, then I think I find it
>> > reasonable.
>>
>> I think you're close... :)
>
> Ok ;-)
>
> I think there are some questions to be solved yet:
>
> 1. Should we retain ability to specify absolute ids in 'project' rule
> invocation.

First tell me what files will invoke "project" and why.

> What are we to do if this id has several components? E.g. will
> "/boost/foobar", be looked up by searching global id "/boost/foobar", or
> asking project "/boost" for subproject "/foobar".
>
> 2. What's the syntax to specify id->dir mapping? Just function in Jamfile?

Do you mean subproject id->directory mapping?

Well, a function is more flexible, but less declarative. You could
do it declaratively with SUBST, but I guess I like the function.

> 3. Maybe something else I forgot
>
> - Volodya
>
>
>
>
>
>
>
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
>
>
>

-- 
Dave Abrahams
Boost Consulting
http://www.boost-consulting.com
 

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