On 03/02/2011 15:33, Niklas Matthies wrote:
On Thu 2011-02-03 at 11:14h, Jonathan Oulds wrote on ivy-user:
:
I have an ivy module called FooBar that produces the artefact FooBar.msi
FooBar depends upon the modules Foo and Bar.  Foo exports the artefact
Foo.exe, while Bar exports Bar.h under an interface configuration and
Bar.dll under an implementation configuration.

So to summarise my dependencies are:
FooBar ->  Foo
FooBar ->  Bar [impl]
Foo ->  Bar [iface]

Now I want to produce a proof of concept release called FooBarPoC that
includes BarPoc.dll, however I don't want to make any changes that will
break my original FooBar build.  So my options seem to be.

Option1:
Create a new BarPoC module, but keep the original Foo dependency.  This
seems wrong as the relationship between the interface and implementation
of Bar and BarPoC are no longer explicit.

How about you let BarPoC also depend on Bar [iface], so it gets its
Bar.h from Bar instead of duplicating it?

-- Niklas Matthies



Thank you for your reply. If I understand you correctly you are suggesting that instead of the follow dependencies...

FooBarPoC -> Foo
FooBarPoC -> BarPoC [impl]
Foo -> Bar [iface]

... I use

FooBarPoC -> Foo
FooBarPoC -> BarPoC [impl]
Foo -> BarPoC [iface] -> Bar [iface]

In this way I can get Bar.h via the transitive dependency. The problem is that I have to modify the Ivy file within the Foo source code just to get Bar.h via a different route. This will require duplicating the Foo module which is something I was hoping to avoid.

Reply via email to