Eu tenho um projeto que usa 3-4 diferentes bibliotecas C / C ++ de código aberto.
Criei essas bibliotecas para várias plataformas e registrei arquivos e bibliotecas estáticas para diferentes plataformas no meu projeto.
No entanto, luto com alguns problemas. Todos esses projetos estão relacionados ao gerenciamento de dependências. E estou procurando conselhos de melhores práticas.
1) Como sei exatamente o que uso?
Não tenho como obter uma versão de uma biblioteca estática. Como resultado, preciso rastrear qual versão da lib estática estou usando (pode ser SHA de uma confirmação a partir da qual ela foi criada)?
Isso é especialmente importante quando preciso descobrir quando atualizar essas bibliotecas.
2) Como reproduzo a compilação?
Eu poderia ter lutado para criar alguma biblioteca específica para uma plataforma específica. Demorei um pouco para descobrir.
A próxima vez em que precisarei criar a mesma biblioteca poderá ser em meio ano (quando precisarei atualizar por qualquer motivo. No entanto, nessa época, não vou me lembrar de nada e de um ambiente no qual ela foi construída. já se foi há muito tempo.
3) Devo bifurcar essas bibliotecas para ter uma cópia do código fonte?
Esta é uma preocupação menor. No entanto, ainda é uma preocupação. É bom garantir que as compilações sejam reproduzíveis (e isso requer código-fonte).