title: How should I manage dependencies in C or C++ open source projects?
body: <p>I've got a few open source applications. These depend on a few third party components, notably Crypto++ and Boost. There are a couple of options to take:</p>
  
  <ul>
  <li>Put third party code into version control, and include it with distributions of my code. On one hand, this is the easiest for people to use because they can compile directly out of my source control repository. On the other, they might be wasting bandwidth downloading source they already have, or end up having to fight with my library in order to remove the third party bits. Furthermore, source control tools often have trouble dealing with massive libraries like Boost.</li>
  <li>Don't include third party code at all. This forces people to go out of their way to be able to use my library. On the other hand it means my source control repository and distributions will be small.</li>
  <li>Something I have not yet anticipated.</li>
  </ul>
  
  <p>What should I do?</p>
  
  <p><em>Note</em>: I'm not working in an environment where reliance on a dependency mapper like <code>aptitude</code>, <code>apt-get</code>, or <code>yum</code> are acceptable.</p>