|
Boost-Build : |
From: Christopher Currie (Christopher_at_[hidden])
Date: 2003-07-28 09:37:37
I've been pouring through the BBv2 code, looking for an easy place to
add a feature I've been wanting, but I'm starting to get lost in the
code. Basically my problem is that I want the <library> feature to add
usage-requriements to libraries that have the feature in their own
usage-requirements.
For example, taking the sample code used in the documentation:
lib utils : utils.cpp : : : <library>/boost/filesystem//fs ;
lib core : core.cpp : : : <library>utils ;
exe app : app.cpp core ;
This code declares an excecutable that delcares a library that uses
another library. My problem occurs when I try and put 'utils' in another
directory:
# utils/Jamfile.v2
project utils : usage-requirements <include>. ;
lib utils : utils.cpp : : : <library>/boost/filesystem//fs ;
# app/Jamfile.v2
lib core : core.cpp : : : <library>/utils//utils ;
exe app : app.cpp core ;
# ./Jamfile.v2
use-project /utils : utils ;
Assume that 'core' needs to include some "utils.hpp" in order to build
properly. This code will only add the <include> usage requirement to the
exe, not to the lib.
I could get around the problem by putting the <library> in the
requirements field instead of the usage requirements, but that results
in 'utils' being linked into 'core', which I imagine might result in
duplicate symbols if static libraries are built.
Any help is appreciated,
Christopher
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