<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.5726" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN
class=875500816-19032009>Hi,</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=875500816-19032009></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=875500816-19032009>I'm facing an issue
while trying to port my current build system to cmake and don't know is there is
a way to solve it:</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=875500816-19032009></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=875500816-19032009>In our project, we
build a bunch of <STRONG>static</STRONG> libs (about 360) and several
executables on them.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=875500816-19032009></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=875500816-19032009>* one library, in
the middle of the lib dependency chain, has in fact 2 different implementations.
That is to say, there are 2 different libs with the exact same interface, but
they don't use the same back-end, have different source code, and don't have the
same dependencies.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=875500816-19032009>* only one of them
has to be used in every executable, the implementation to use is determined
by the executable.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=875500816-19032009></SPAN></FONT> </DIV>
<DIV><FONT face=Arial><SPAN class=875500816-19032009>
<DIV><FONT face=Arial size=2><SPAN class=875500816-19032009>Dependency graph
example: "->" means "depends on"</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=875500816-19032009></SPAN></FONT> </DIV>
<DIV><FONT face="Courier New"><SPAN class=875500816-19032009><FONT
size=2><STRONG>exe1-A</STRONG> -> lib1 -> lib3 ->
<STRONG>lib4-A</STRONG> -> lib5 -> lib7</FONT></SPAN></FONT></DIV>
<DIV><FONT face=Arial>
<DIV><FONT face="Courier New"><SPAN class=875500816-19032009><FONT
size=2><STRONG>exe1-B</STRONG> -> lib1 -> lib3 ->
<STRONG>lib4-B</STRONG> -> lib6 -> lib8</FONT></SPAN></FONT></DIV>
<DIV><FONT face="Courier New"><SPAN class=875500816-19032009>
<DIV><FONT face="Courier New"><SPAN class=875500816-19032009><FONT
size=2><STRONG>exe2-A</STRONG> -> lib2 -> lib3 ->
<STRONG>lib4-A</STRONG> -> lib5 -> lib7</FONT></SPAN></FONT></DIV><FONT
face="Courier New"><SPAN class=875500816-19032009>
<DIV><FONT face="Courier New"><SPAN class=875500816-19032009><FONT
size=2><STRONG>exe2-B</STRONG> -> lib2 -> lib3 ->
<STRONG>lib4-B</STRONG> -> lib6 -> lib8</FONT></SPAN></FONT></DIV>
<DIV><FONT size=2></FONT></SPAN></FONT></SPAN></FONT></FONT> </DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2>I'd like to keep using the standard cmake mechanism of
dependency description in which every lib <SPAN
class=875500816-19032009>only </SPAN>defines on which other libs it depends, and
let cmake compute the <SPAN class=875500816-19032009>final </SPAN>link
line.</FONT></SPAN></FONT></DIV></DIV></DIV></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=875500816-19032009></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=875500816-19032009>The question is: how
can I express the dependencie of lib3 on lib4 whereas lib3 has only a
single description, and we don't know when describing it, if we'll have to use
lib4-A or lib4-B. (and anyway, depending on the executable, we'll have to use
each of them).</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=875500816-19032009></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=875500816-19032009>Is there any concept
of "abstract" target (lib4 in my example) which could be "instanciated" in the
executable description (as lib4-A or lib4-B in the
example)</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=875500816-19032009></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><FONT face="Courier New" size=2><SPAN
class=875500816-19032009><FONT face="Courier New" size=2><SPAN
class=875500816-19032009><FONT face="Courier New" size=2><SPAN
class=875500816-19032009><FONT face=Arial size=2><SPAN
class=875500816-19032009></SPAN></FONT> </DIV></SPAN></FONT></SPAN></FONT></SPAN></FONT></FONT>
<DIV align=left><FONT face=Arial><FONT size=2><SPAN
class=875500816-19032009>Thanks</SPAN>,</FONT></FONT></DIV>
<DIV align=left><FONT face=Arial size=2></FONT> </DIV>
<DIV align=left><FONT face=Arial size=2>Alexandre</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV><br clear=all> This email was sent to you by Thomson Reuters, the global news and information company.<br>
Any views expressed in this message are those of the individual sender, except where the sender specifically states them to be the views of Thomson Reuters.
</BODY></HTML>