Tengo un proyecto que utiliza 3-4 bibliotecas C / C ++ de código abierto diferentes.
Construí estas bibliotecas para varias plataformas y registré incluir archivos y bibliotecas estáticas para diferentes plataformas en mi proyecto.
Sin embargo, lucho con un par de problemas. Todos estos proyectos están relacionados con la gestión de dependencias. Y estoy buscando consejos sobre mejores prácticas.
1) ¿Cómo sé qué uso exactamente?
No tengo forma de obtener una versión de una biblioteca estática. Como resultado, necesito de alguna manera rastrear qué versión de lib estática estoy usando (¿puede ser SHA de un commit desde el que se creó)?
Esto es especialmente importante cuando necesito averiguar cuándo actualizar estas bibliotecas.
2) ¿Cómo reproduzco la compilación?
Podría haber tenido dificultades para construir una biblioteca específica para una plataforma específica. Me tomó un tiempo darme cuenta.
La próxima vez que necesite construir la misma biblioteca podría ser en medio año (cuando necesite actualizar por cualquier razón. Sin embargo, para ese momento, definitivamente no recordaré nada y un entorno en el que fue construido se habrá ido hace mucho tiempo.
3) ¿Debo bifurcar estas bibliotecas para tener una copia del código fuente?
Esta es una preocupación menor. Sin embargo, sigue siendo una preocupación. Es bueno asegurarse de que las compilaciones sean reproducibles (y eso requiere un código fuente).