Я сделал проект на github, который использует несколько библиотек, таких как glew, glm, sdl2 или sdl2_image. Я использую их, помещая их в папку с именем «external», и собирая их из источника с помощью CMake.
Моя проблема заключается в попытке настроить эту «внешнюю» папку сразу после клонирования репозитория, чтобы она Легко для пользователя скомпилировать проект.
- Я мог бы сохранить внешнюю папку как есть на моем репозитории github, но было бы неудобно получать новые обновления библиотек, и я не Я не хочу, чтобы это выглядело так, будто я "краду собственность" библиотек. И я действительно не хочу разрешать использование контроля версий для этих файлов.
- Я мог бы использовать git субмодулей, чтобы указывать на нужные коммиты, которые я хочу, но это делает загрузку очень тяжелой (выборка каждого репо примерно в 10-20 раз больше, чем папка релиза zip). И мне все равно не нужна информация об управлении версиями, так как я не работаю с этими зависимостями и не буду вносить изменения.
Два разумных (но не оптимальных) варианта, которые я вижу для меня скачивание zip-файла зависимостей, которые я бы сделал сам, или выборка зависимостей одна за другой и распаковка их в нужных местах с помощью сценария.
Но создание сценария добавит зависимости, такие как wget и его Windows эквивалент, и я не знаю, где я мог бы сохранить zip-файл, поскольку github, кажется, не предоставляет места для хранения дополнительных файлов (новая ветвь?).
- Предоставляет ли github какой-либо способ связать репозиторий с внешними выпусками репо?
- В противном случае, где было бы лучше хранить дополнительные файлы, относящиеся к репозиторию, которые не должны быть частью контроля версий?