Mam projekt, który wykorzystuje 3-4 różne biblioteki C / C ++ typu open source.
Zbudowałem te biblioteki dla kilku platform i zameldowałem się w plikach i bibliotekach statycznych dla różnych platform w moim projekcie.
Walczę jednak z kilkoma problemami. Wszystkie te projekty dotyczą zarządzania zależnościami. I szukam porady najlepszych praktyk.
1) Skąd mam wiedzieć, czego dokładnie używam?
Nie mam drogi, aby uzyskać wersję statycznej biblioteki lib. W rezultacie potrzebuję w jakiś sposób śledzić, której wersji statycznej biblioteki lib używam (może to być SHA zatwierdzenia, z którego została zbudowana)?
Jest to szczególnie ważne, gdy muszę dowiedzieć się, kiedy zaktualizować te biblioteki.
2) Jak odtworzyć kompilację?
Mógłbym mieć problemy z budowaniem konkretnej biblioteki dla konkretnej platformy. Zajęło mi to trochę czasu, aby to rozgryźć.
Następnym razem, gdy będę musiał zbudować tę samą bibliotekę, może upłynąć pół roku (kiedy będę musiał dokonać aktualizacji z jakiegokolwiek powodu. Jednak do tego czasu na pewno nie będę niczego pamiętać i środowiska, na którym została zbudowana) już dawno zniknie.
3) Czy powinienem rozwidlać te biblioteki, aby mieć kopię kodu źródłowego?
To mniejszy problem. Jednak nadal jest to problem. Miło jest upewnić się, że kompilacje są odtwarzalne (i tego rodzaju wymaga kodu źródłowego).