Cómo administrar dependencies en c ++

Tengo un gran repository con una gran cantidad de modules separados (ejecutables y, por lo tanto, files) que dependen de otro (y dependen de bibliotecas de terceros que no están en el repository).

Quiero poder extraer solo un module en este repository y poder buildlo de forma independiente.

Por cierto, utilizo scons como herramienta de compilation en Linux y en el entorno de Windows.

Vi en este sitio (y más) que hay dos enfoques para este problema:

  1. cree en cada repository de modules el directory "dependency" o cualquier nombre similar y establezca todos los repositorys de los que este module depende como repositorys secundarios en este directory.

    Problemas:

    1. no resuelve el problema de terceros que no son manejables en mi SCM.
    2. hace que el procedimiento de compilation sea mucho más lento
    3. es feo, un montón de múltiplos en mi proyecto base dir.
  2. crear "repository binary" o "crear repository de artefactos" y administrar las dependencies con él.

Esta parece ser la mejor solución para mí, pero no entiendo cómo hacerlo de manera práctica.

Vi nuget para desarrolladores de Windows c (y también un pequeño c ++ pero solo en Windows) y ivy / maven para desarrolladores Java pero no puedo encontrar ninguna herramienta que lo maneje para c ++.

Mi pregunta es: ¿cómo crear una gestión de dependencies con código c ++?

Las dependencies en C ++ se gestionan mediante files de encabezado y declaraciones de reenvío. En general, debería preferir las declaraciones avanzadas tanto como sea posible e include files de encabezado cuando no hay forma de evitarlo. Esto generalmente le brinda la ventaja de que, siempre que no cambie la interfaz de una class, la recompilation solo debe tocar un solo file de object.

Sospecho que también quieres algo más complejo, que tenga que ver con la configuration de tu compilation. Eso tiene muy poco que ver con c ++. Si desea una mejor respuesta para esto, sea más explícito con respecto a la configuration de su compilation.

El complemento maven nar (Archivo nativo) puede ayudarte con esto. Es un complemento para maven que te permite build files nativos en una plataforma. A continuación, puede utilizar la function de dependencia maven estándar para las dependencies c / c ++ también.