|
View:
New views
3 Messages
—
Rating Filter:
Alert me
|
|
|
cycle runtime dependencyGood day!
I have the following situation: The dll1 library loads the dll2 library dynamically via LoadLibrary. On the other hand the dll2 loads dll1 also dynamically. So there is no explicit dependency between two modules. But in runtime dll1 cannot work without dll2 and vise versa. I want to use <dependency> to illustrate this situation: lib dll1 : ... : <dependency>dll2 ; lib dll2 : ... : <dependency>dll1 ; But bjam fails with cycle detection. Is there way to describe this situation? Can bjam break a cycle itself? Thanks in advance, Anatoly. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build |
|
|
Re: cycle runtime dependencyAMDG
Anatoly Shirokov wrote: > I have the following situation: > > The dll1 library loads the dll2 library dynamically via LoadLibrary. > On the other hand the dll2 loads dll1 also dynamically. So there is no > explicit dependency between two modules. But in runtime dll1 cannot > work without dll2 and vise versa. > > I want to use <dependency> to illustrate this situation: > > lib dll1 : ... : <dependency>dll2 ; > > lib dll2 : ... : <dependency>dll1 ; > > But bjam fails with cycle detection. > > Is there way to describe this situation? Can bjam break a cycle itself? Why do you need the libraries to depend on each other? 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? In Christ, Steven Watanabe _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build |
|
|
Re: cycle runtime dependencyHi 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. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build |
| Free embeddable forum powered by Nabble | Forum Help |