Boost logo

Boost-Build :

Subject: Re: [Boost-build] cycle runtime dependency
From: Anatoly Shirokov (shirokov_a_at_[hidden])
Date: 2009-06-11 17:47:36


Hi Steven!
> Why do you need the libraries to depend on each other?
I cannot answer because I am not an author of this desing. Anyway if two
modules implement well know abstract interface why not?

> From Boost.Build's point of view, dll1 depends on dll2
> means that if dll2 is rebuilt, dll1 also needs to be rebuilt.
> Is that what you want? If not why do you need to specify
> the dependency?
>
It needs to install all needed files to prepare an execution
environment. Each module contains typical install procedure:

install module_dist : module
    : <install-dependencies>on <install-type>EXE <install-type>SHARED_LIB
    <variant>release:<location>$(DISTR)/release
    <variant>debug:<location>$(DISTR)/debug
;

Bjam cannot break cycle. So I use the following solution:

# dll1/jamfile
lib dll1 : ... ;

install dll1_dist : dll1
    /my/dll2//dll2
  : ...
;

# dll2/jamfile
lib dll2 : ... ;

install dll2_dist : dll2
    /my/dll1//dll1
  : ...
;

It looks good, but there is the following problem:

lib dll3 : dll3 /my/dll1//dll1 ;

install dll3_dist : ... ;

If I run bjam in the dll3 directory, I cannot find dll2 which is needed
for dll1 in the $(DISTR) directory.

Anatoly.


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