Здравствуйте, vdimas, Вы писали:
V>Это достаточно продвинутая система билда, которая ввиду своей продвинутости может обходиться без пакетного менеджера, т.к. позволяет скачивать и кешировать зависимости прямо из интернета.
Ну, собственно, именно об этом и шла речь. Пакетный менеджер — это рантайм-функция: ставим программу на целевую машину, магия подтягивает зависимости без рукопашных приседаний по километровым инструкциям.
А для разработчика актуально наличие системы сборки, которая стащит нужные компайл-тайм зависимости.
Важно это потому, что даёт возможность быстрее начать приносить в проект пользу, не преодолевая полосу препятствий.
V>Но когда указываешь конкретную ссылку для скачивания зависимостей, то в этой ссылке версия обычно вшита жёстко, в то время как пакетные менеджеры позволяют указывать условия, например, "старше версии X.Y.0, но младше или равно X.Y.42", ведь мы пишем под зоопарк, где одновременно входу кучи версий одной и той же либы, например, OpenSSL. Такого рода зависимости Bazel не обслуживает.
Ну, вообще говоря, для воспроизводимости билда лучше указывать фиксированную версию, а обновление зависимостей проводить контролируемо.
V>Т.е. сложно подхватить уже имеющуюся "родную" либу на целевых линухах. V>Вместо этого Bazel предлагает то, что он может — скачать некую конкретную версию этой либы с github, но тогда её нужно собрать в виде статической либы, т.е. подключить её тело в проект, а не пользовать уже имеющуюся на машине DLL или SO.
То есть опять мы возвращаемся к тому, что в С++ всё хуже среднего — из сотни доступных "вариантов" нет ни одного, который бы "просто работал". Везде какие-то недоделки и грабли.
Пока что положительный момент ровно один: комитет всё же пытается втащить этого ктулху в 21 век, добавив в него возможности, которые у "хипстеров" были реализованы 10, 20, 30, и 50 лет назад.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.