Subject: Re: [boost] Boost Modularization: did we get it right?
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2012-05-10 01:46:02


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]>:
>>
>> <snip>
>>
>>> 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.
>

That should work. I've tried to implement
it in the attached.

Usage is:

import link ;
symlink boost-utility : utility/include/boost : <location>. ;
symlink boost-graph : graph/include/boost : <location>. ;
...

project :
  requirements
    <include>.
    <implicit-dependency>boost-utility
    <implicit-dependency>boost-graph
    ...
;

I haven't tested this beyond basic
merging of two directories yet. Once
I get it fully working, we should be
able to just add an appropriate glob
to Jamroot.

In Christ,
Steven Watanabe