
AMDG On 05/09/2012 01:06 PM, Daniel James wrote:
On 9 May 2012 20:18, Daniel Pfeifer <daniel@pfeifer-mail.de> wrote:
2012/5/9 Steven Watanabe <watanabesj@gmail.com>:
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