На основе предоставленных сборочных правил Swift Build формирует план сборки и запускает компоненты сборочного процесса. Проект развивается с оглядкой на обеспечение кросс-платформенной сборки для различных операционных систем и типов устройств. Основное назначение сборочной системы описывается, как преобразование предоставленных пользователем входных данных, таких как описание проекта и исходный код, в результирующие артефакты, такие как библиотеки и приложения.
Система реализована в виде надстройки над набором библиотек llbuild (low-level build), реализующих низкоуровневые примитивы для работы с графом зависимостей, определения формата правил сборки, отслеживания пересобираемых объектов и создания манифестов для инструментария Ninja. Из расширенных возможностей
Swift Build отмечается: поддержка интеграции с компилятором Swift для эффективной координации сборка проектов на языке Swift; поддержка сборки различных типов продуктов, включая утилиты командной строки, GUI-приложения и библиотеки; оптимизации сборочного графа для повшения эффективности распараллеливания процессов сборки кода на языках Swift и C.
Основу Swift Build составляет процесс SWBBuildService, который запускается после инициирования сборки клиентом, которым может выступать утилита swbuild, среда разработки Xcode или пакетный менеджер Swift Package Manager. Взаимодействие между сборочным сервисом SWBBuildService и клиентским процессом осуществляется через отправку сериализированных сообщений поверх неименованного потока (pipe). На стороне клиента взаимодействие со сборочной системой осуществляется через API SwiftBuild или через утилиту командной строки swbuild.
Функциональность Swift Build определяет набор фреймворков, таких как:
- SWBLLBuild — надстройка для доступа к функциональности llbuild;
- SWBUtil — вспомогательные функции, такие как реализация упорядоченных списков;
- SWBCSupport — поддержка кода на C и Objective-C;
- SWBCore — движки для обработки макросов, настроек, модели проекта, спецификаций, платформ;
- SWBTaskConstruction — логика формирования задач;
- SWBTaskExecution — организация выполнения сборочных задач;
- SWBBuildSystem — построение и планирования сборочных операций, управление созданием и выполнением задач.
Источник: http://www.opennet.ru/opennews/art.shtml?num=62661