<div dir="ltr">Thanks J.<div><br></div><div>That requires me to use ExternalProject_Add. However, in my case, I have all Libraries generated/built independently. Should I just start using ExternalProject_Add for dependencies? If yes, what is the best way to do that in conjunction with 'find_package(...)'?</div></div><br><div class="gmail_quote"><div dir="ltr">On Sat, Jan 13, 2018 at 10:28 AM J Decker <<a href="mailto:d3ck0r@gmail.com">d3ck0r@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><dl><dt style="text-align:justify"><code class="m_-8477994216507795250gmail-docutils m_-8477994216507795250gmail-literal" style="background-color:rgb(236,240,243);padding:0px 1px"><span class="m_-8477994216507795250gmail-pre"><font color="#444444"><span style="font-size:15.2px">maybe</span></font></span></code></dt><dt style="text-align:justify"><code class="m_-8477994216507795250gmail-docutils m_-8477994216507795250gmail-literal" style="background-color:rgb(236,240,243);padding:0px 1px"><span class="m_-8477994216507795250gmail-pre"><font color="#444444"><span style="font-size:15.2px"><a href="https://cmake.org/cmake/help/v3.2/module/ExternalProject.html" target="_blank">https://cmake.org/cmake/help/v3.2/module/ExternalProject.html</a></span></font><br></span></code></dt><dt style="text-align:justify"><code class="m_-8477994216507795250gmail-docutils m_-8477994216507795250gmail-literal" style="background-color:rgb(236,240,243);padding:0px 1px"><span class="m_-8477994216507795250gmail-pre"><font color="#444444"><span style="font-size:15.2px"><br></span></font></span></code></dt><dt style="color:rgb(68,68,68);font-family:sans-serif;font-size:16px;text-align:justify"><code class="m_-8477994216507795250gmail-docutils m_-8477994216507795250gmail-literal" style="background-color:rgb(236,240,243);padding:0px 1px;font-size:0.95em"><span class="m_-8477994216507795250gmail-pre">BUILD_ALWAYS</span> <span class="m_-8477994216507795250gmail-pre">1</span></code></dt><dd style="margin-top:3px;margin-bottom:10px;margin-left:30px;text-align:justify;line-height:20.8px;color:rgb(68,68,68);font-family:sans-serif;font-size:16px">No stamp file, build step always runs</dd></dl></div><div class="gmail_extra"><br><div class="gmail_quote"></div></div><div class="gmail_extra"><div class="gmail_quote">On Fri, Jan 12, 2018 at 7:41 PM, Saad Khattak <span dir="ltr"><<a href="mailto:saadrustam@gmail.com" target="_blank">saadrustam@gmail.com</a>></span> wrote:<br></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>Let's say I have several CMake enabled libraries that have their own respective build directories and have been installed:</div><div><br></div><div>LibA</div><div>LibB (depends on A)</div><div>LibC</div><div>LibD (depends on LibC and LibA)</div><div><br></div><div>I then create a new executable project ProjExe that depends on LibD. Now, I am working on LibA, LibB, LibC, LibD and ProjExe simultaneously (e.g. building up functionality in the libraries that the executable uses, fixing bugs etc.).</div><div><br></div><div>What I would like, is a way to ensure that when ProjExe is built, it first checks whether LibD is up-to-date (i.e. does it have any out of source build files?), if not, it builds LibD first. But LibD depends on LibC and LibA, and then LibD ensures that LibC and LibA are up-to-date before building itself.</div><div><br></div><div>Is something like this possible in CMake? This is  similar to the 'solution' concept in Visual C++ where a 'solution' can have several projects. ProjExe in the solution can be dependent on external libraries (like the above) and they are part of the 'solution' and are checked to be up-to-date before ProjExe is compiled/linked.</div><div><br></div><div>Thanks,</div><div>Saad</div></div>
<br></blockquote></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">--<br>
<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" rel="noreferrer" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
<br>
Kitware offers various services to support the CMake community. For more information on each offering, please visit:<br>
<br>
CMake Support: <a href="http://cmake.org/cmake/help/support.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/support.html</a><br>
CMake Consulting: <a href="http://cmake.org/cmake/help/consulting.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/consulting.html</a><br>
CMake Training Courses: <a href="http://cmake.org/cmake/help/training.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/training.html</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="https://cmake.org/mailman/listinfo/cmake" rel="noreferrer" target="_blank">https://cmake.org/mailman/listinfo/cmake</a><br>
<br></blockquote></div><br></div>
</blockquote></div>