Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-02-28 03:30:54


Hi Jürgen,

> > Usage requirements on libx are applied only to main targets which
> > use it. However, you can cause all main targets to be linked with
> > libx: just add <library>/some-path/libx to requirements. If you
> > don't want to link all targets, but want to add includes for all of
> > them, you can try <dependency>/some-path/libx in requirements. This
> > should add usage-requirements, and make all main target depend in
> > libx, but library won't be linked unless explicitly asked.
>
> This clarifies things. But I think I should be able to
> use <library>@/libx or <depedency>@/libx, shouldn't I ?

I think you've meant

<library>@/libx/libx

Yes, this is the same as <library>/some-path/libx. I've just made some
cleanups in the most dirty V2 area (IMO) -- default build handling. Seems
like your example now works. I attach an achive, which differs from
the one you originally sent only by <library>@/libx/libx in top-level
requirements.

> > > Is this a bug, feature or am I misinterpreting the docs ?
> >
> > I think the latter. Could you tell what parts of docs lead you
> > to the conclusion you have, so that we could clarify them?
>
> Well, the docs ("tools/build/boost_build_v2.html" only state:
> | When linking the "app" binary,the needed library will be used. But
> | what is meant by "needed"?"
>
> The following section describes how the "usage-requirements" work. It
> simply does not say anything about building your own libraries. So I
> thought bjam would do some magic by simply using "use-project". Well,
> I was wrong. And the <depedency> rule is not mentioned there.

OK, noted. I'll look though the docs and hopefully improve 'em later today.

> Are there more docs available ? I would like to learn more about the
> bjam internals. Can you drop me a link (or two) where to start
> looking ?

Are you interested in user-level docs, or precisely "bjam internals" -- how
it all work inside? If the latter, we have plenty of comments in the code,
but description of big picture is almost missing. There are two
UML diagrams in targets.jam and virtual-target.jam, and a sequence chart at

http://boost.sourceforge.net/boost-build2/diagrams/

I meant to add more sequence charts to illustrace the mechanics, but noone
pushed me to it ;-) You might want to read comment at the top of
'generators.jam', which explains how the process of converting sources to
desired targets works. Please let me know what further information is most
desirable.

- Volodya
 --------------Boundary-00=_INF007BT146LHBH9ICNN Content-Type: application/x-tgz;
name="bjam-f.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bjam-f.tar.gz"

[Attachment content not displayed.] --------------Boundary-00=_INF007BT146LHBH9ICNN--


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