Ich habe ein Projekt, das 3-4 verschiedene Open Source C / C ++ - Bibliotheken verwendet.
Ich habe diese Bibliotheken für mehrere Plattformen erstellt und Include-Dateien und statische Bibliotheken für verschiedene Plattformen in meinem Projekt eingecheckt.
Ich habe jedoch mit einigen Problemen zu kämpfen. Bei all diesen Projekten geht es um das Abhängigkeitsmanagement. Und ich suche nach Best-Practice-Ratschlägen.
1) Woher weiß ich, was ich genau benutze?
Ich habe keine Möglichkeit, eine Version einer statischen Bibliothek zu erhalten. Als Ergebnis muss ich irgendwie verfolgen, welche Version der statischen Bibliothek ich verwende (kann SHA eines Commits sein, aus dem es erstellt wurde)?
Dies ist besonders wichtig, wenn ich herausfinden muss, wann diese Bibliotheken aktualisiert werden müssen.
2) Wie reproduziere ich den Build?
Ich hätte mich schwer tun können, eine bestimmte Bibliothek für eine bestimmte Plattform zu erstellen. Ich habe eine Weile gebraucht, um es herauszufinden.
Das nächste Mal, wenn ich dieselbe Bibliothek erstellen muss, könnte in einem halben Jahr sein (wenn ich aus irgendeinem Grund ein Upgrade durchführen muss. Bis dahin werde ich mich jedoch nicht mehr an irgendetwas und eine Umgebung erinnern, auf der sie erstellt wurde wird lange weg sein.
3) Sollte ich diese Bibliotheken mit einer Kopie des Quellcodes versehen?
Dies ist ein geringeres Problem. Es ist jedoch immer noch ein Problem. Es ist schön sicherzustellen, dass Builds reproduzierbar sind (und dies erfordert Quellcode).