<!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>&nbsp;</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&nbsp;it:</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=875500816-19032009></SPAN></FONT>&nbsp;</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>&nbsp;</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&nbsp;implementation to use is determined 
by the executable.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=875500816-19032009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial><SPAN class=875500816-19032009>
<DIV><FONT face=Arial size=2><SPAN class=875500816-19032009>Dependency graph 
example: "-&gt;" means "depends on"</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=875500816-19032009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New"><SPAN class=875500816-19032009><FONT 
size=2><STRONG>exe1-A</STRONG> -&gt; lib1 -&gt;&nbsp;lib3 -&gt; 
<STRONG>lib4-A</STRONG> -&gt; lib5 -&gt; 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> -&gt; lib1 -&gt;&nbsp;lib3 -&gt; 
<STRONG>lib4-B</STRONG> -&gt; lib6 -&gt; 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> -&gt;&nbsp;lib2 -&gt; lib3 -&gt; 
<STRONG>lib4-A</STRONG> -&gt; lib5 -&gt; 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> -&gt;&nbsp;lib2 -&gt; lib3 -&gt; 
<STRONG>lib4-B</STRONG> -&gt; lib6 -&gt; lib8</FONT></SPAN></FONT></DIV>
<DIV><FONT size=2></FONT></SPAN></FONT></SPAN></FONT></FONT>&nbsp;</DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>I'd like to keep using the standard cmake mechanism of 
dependency description in which every lib&nbsp;<SPAN 
class=875500816-19032009>only </SPAN>defines on which other libs it depends, and 
let cmake compute the&nbsp;<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>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=875500816-19032009>The question is: how 
can I express the dependencie of lib3 on lib4&nbsp;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>&nbsp;</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&nbsp;(as lib4-A or lib4-B in the 
example)</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=875500816-19032009></SPAN></FONT>&nbsp;</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>&nbsp;</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>&nbsp;</DIV>
<DIV align=left><FONT face=Arial size=2>Alexandre</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</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>