<div class="gmail_quote"><br>Thanks guys,<br>I ll have a look at External Project sometimes too, seems it could make my code a bit simpler.<br><br>For what it s worth, in my custom build framework, to make things simple I assume a few ( very arguable and arbitrary ) things. Among them :<br>
- the source and build folder hierarchy is known and always the same, which helps me to automatically detect built things in the right place.<br>- I expect the developer to build his dependencies when needed ( a simple "build just me" choice ), but I ( try to ) provide dependencies detection...<br>
For automatic building I would use the "simple shell script" solution, that will build things in the right order.<br><br>This enables me to generate automatically and consistently the *Config.cmake and the *Export.cmake files which makes the job so much easier :-)<br>
<br>In conclusion I d say that when it s possible for you to know how are your source tree and your build tree organized, it becomes easy to manage multiple related projects, as you can automate most of the build steps.<br>
<br>--<br>AlexV<br><br><div class="gmail_quote">2009/12/22 David Cole <span dir="ltr"><<a href="mailto:david.cole@kitware.com" target="_blank">david.cole@kitware.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="h5">
<div class="gmail_quote"><div>On Tue, Dec 22, 2009 at 11:29 AM, Brian Davis <span dir="ltr"><<a href="mailto:bitminer@gmail.com" target="_blank">bitminer@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<snip><br><div class="gmail_quote"><div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="gmail_quote"><div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>
> There will never be an easy way to pull external projects directly into a<br>
> calling project because the external things are not even guaranteed to be on<br>
> disk yet at configure time of said calling project.<br>
<br>
<br>
</div>Yeah, kind of a chicken-egg problem...<br></blockquote><div><br></div></div>
<div>Exactly. That's why we didn't try to solve that problem. If you have a chicken-egg problem to solve, you have to choose starting with a chicken or an egg, thereby alienating approximately 50% of your audience, even if you have good reasons for your choice.</div>
</div></blockquote></div><div><snip><br><br>I like cake. I like eating it too. Mmmm cake! </div></div></blockquote><div><br></div></div><div>One could argue that CMake itself is simply a horrific misspelling of "Mmmm cake"... And that cmake-gui is like cmake with frosting.</div>
<div>
<div><br></div><div><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="gmail_quote"><div>Cmake may not *know where the third party is when it configures*, but it *knows where it will be*. The build will/could take care of the rest. Correct?</div>
</div></blockquote><div><br></div></div><div>I think "could" is fairly optimistic actually. It would be possible if you had perfect knowledge of the install tree of each and every project you're depending on. But some of the details are not known by CMake until after that project is built and installed. We allow people to write their own arbitrary stuff into their *Config.cmake files... so it ends up being arbitrary. And some external projects are actually not even built with cmake. (Gasp!)</div>
<div><br></div><div>CMake will never provide the perfect solution to this problem. However, if you are willing to do the work necessary, it would certainly be possible for your project to pre-define stuff in such a way as to make it "do-able". It might not be fun, but it could be possible.</div>
<div><br></div><div>:-)</div><div><br></div><div>Good discussion on all this stuff today. This has been a fun day so far. </div><div><br></div><div>Thanks to all of you who've participated,</div><div>David</div><div>
<br>
</div></div>
<br></div></div><div class="im">_______________________________________________<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></blockquote></div><br>
</div><br>