Не совсем понимаю почему
SmInc так сильно завязался на сценарий заливки в VCS, если под заранее собранной может пониматься и выложенная например в releases на гитхабе.
Есть ряд объективных проблем:
- большое количество архитектур, под которые нужно выполнять сборку;
- большое количество конфигураций сборки - в мире C++ приятно делать в библиотеках возможность compile-time конфигурирования - когда отдельные фичи могут менять своё поведение или отключаться в момент КОМПИЛЯЦИИ, а не работы библиотеки. Сюда же разлчиная степень оптимизации, debug/release-билды и так далее;
- большое количество тулчейнов и операционных сред - Клэнг на FreeBSD, gcc на Линуксе, VC++ на Винде, Клэнг на Винде и так далее..
Все вышеперечисленные факторы приводят к комбинаторному взрыву вариантов сборки. Поэтому некоторые проекты по получению некоего "пакетного менеджера" или "каталога библиотек" идут по пути
дерева портов, например
vcpkg. Тут всё просто - вы знаете какой конкретно сейчас вам нужен компилятор, какие ОС и т.д. - скрипт автоматизации сборки помогает вам собрать библиотеку. Это довольно продуктивный компромисс.
Кроме того, не следует также отбрасывать вариант сборки заранее "для себя", которая вполне может прижиться в локальной среде для среднего и круного проекта. См. например репозитории ПМ Conan и
реализацию от JFrog.
Вообще в плюсах из-за зоопарка платформ и инструментов острейшим образом стоит проблема интеграции библиотек. В стеке C++ (если вообще можно такой обозначить) общим знаменателем является, пожалуй, только сам C++. Всё остальное зависит как от авторов библиотеки - с одной стороны, так и от вашей среды где вы собираетесь библиотеку запускать - с другой стороны. Так что привыкайте.