On Sat, Nov 29, 2008 at 3:52 PM, Mike Arthur <span dir="ltr"><<a href="mailto:mike@mikearthur.co.uk">mike@mikearthur.co.uk</a>></span> wrote:<div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
The typical way this is handled in both CMake and generally is that you rely<br>
on the builder of your sourcecode to have the dependencies already installed<br>
and then use Find* modules to determine if the libraries are installed and<br>
either block the build or adjust the options depending on what the user has<br>
installed. Having your build system build the other libraries or (even worse)<br>
having copies of them in your source tree is not a good idea as you need to<br>
keep up to date with their buildsystem and also apply any security fixes or<br>
whatever to your local version of the application.</blockquote></div><br>I generally like keeping libraries in version control because it makes
it convenient to start working from a fresh checkout. This is really
only an issue with Windows, since most linux distributions have a
package management system that makes it trivial to install third party
library dependencies. On Windows, it's quite a pain to visit various
websites and downloads the limitless number of dependencies. If you
flatten the dependency tree, you'll probably end up downloading 10 or
more different libraries, each of which is pretty difficult to build on
Windows. A developer on windows could be looking at a couple of hours
before the project is ready to compile. Am I looking at this the wrong
way, or is this just the reality all Windows developers have to face?<br>
<br>
Thanks again for all the help guys.<br>