why?<div><br></div><div>I&#39;ve invoked:</div><div><br></div><div>find_package(liba REQUIRED)</div><div><br></div><div>not:</div><div><br></div><div>find_package(libpng REQUIRED)</div><div><br></div><div>My application has no knowledge about libpng, or libjpg or whatever the heck else liba uses to load images.</div>
<div><br></div><div>~</div><div>Doug.<br><br><div class="gmail_quote">On Fri, Aug 12, 2011 at 3:11 PM, Andreas Pakulat <span dir="ltr">&lt;<a href="mailto:apaku@gmx.de">apaku@gmx.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On 12.08.11 11:23:46, Doug wrote:<br>
&gt; That works if it&#39;s all in a single project, but it&#39;s not.<br>
&gt;<br>
&gt; I totally understand you can do this:<br>
&gt;<br>
&gt; add_library(foo)<br>
&gt; target_link_library(foo bar)<br>
&gt; add_executable(exec)<br>
&gt; target_link_library(exec foo)<br>
&gt;<br>
&gt; If you have _this_ structure:<br>
&gt;<br>
&gt; .../liba/CMakeLists.txt<br>
&gt; ....<br>
&gt;<br>
&gt; .../blah/libb/CMakeLists.txt<br>
&gt; ....<br>
&gt;<br>
&gt; ..../some/other/path/exec/CMakeLists.txt<br>
&gt;<br>
&gt; Then in exec you can you use find_package(libb REQUIRED)<br>
&gt;<br>
&gt; However, when I compile it I still get dependency resolution errors on liba<br>
&gt; (libpng in my case).<br>
&gt;<br>
&gt; I&#39;m guessing thats because to resolve libb all you get a include path and a<br>
&gt; library path; find package has no way to load the CMakeLists.txt in libb/<br>
&gt; and parse it, add the dependency to liba.<br>
&gt;<br>
&gt; Seems like there should be a way to do this though.<br>
&gt;<br>
&gt; Am I wrong?<br>
&gt;<br>
&gt; Should the values in libb&#39;s CMakeLists.txt be propagating through?<br>
<br>
</div>No. Whats supposed to happen is that find_package will give you a<br>
cmake-variable containing the absolute path to the png-library. And that<br>
variable you should use in your target_link_libraries call:<br>
<br>
target_link_libraries( exec ${PNG_LIBRARY} )<br>
<br>
If you look at the cmake manual for target_link_libraries you&#39;ll notice<br>
that the &#39;target&#39; in its name refers to its first argument. The second<br>
and all following arguments are basically just link-flags for the<br>
linker.<br>
<font color="#888888"><br>
Andreas<br>
</font><div><div></div><div class="h5"><br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br>
</div></div></blockquote></div><br></div>