|
Boost : |
Subject: Re: [boost] Boost Modularization: did we get it right?
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2012-05-10 19:55:30
AMDG
On 05/09/2012 01:06 PM, Daniel James wrote:
> On 9 May 2012 20:18, Daniel Pfeifer <daniel_at_[hidden]> wrote:
>> 2012/5/9 Steven Watanabe <watanabesj_at_[hidden]>:
>>
>>> Behavior:
>>> If symlinks are supported, creates a symbolic
>>> link to the directory.
>>
>> This is fragile. Imagine Graph generates a link at boost/graph and
>> GraphParallel generates a link at boost/graph/parallel.
>> GraphParallel's link will end up in Graph's source directory!
>> There is also the case that multiple libraries provide files in the
>> same directory (eg. boost/pending). They cannot all link the
>> directory.
>>
>> The script should always link individual files. That is dead slow,
>> yes. But it is the only safe approach.
>
> Have you seen GNU stow? It links directories, but if two packages
> clash, replaces the link with a new directory, and fills that with
> links.
>
I think I have this working now. I've added
a glob to Jamroot that finds all the include
directories. running 'bjam headers' should
create all the links. The only thing left
to make it work seamlessly is to go through
all the libs and add
<implicit-dependency>/boost//headers
to all the tests and compiled libraries.
The algorithm now looks like:
If symlinks are supported:
Sym link the directory
if there is a conflict, create
a subdirectory and symlink all
the members.
Else if hardlinks are supported:
Hard-link all leaves
Else
Copy all leaves
Any thoughts on this? The attached
patch has all the changes I made.
In Christ,
Steven Watanabe
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk