https://github.com/swiftlang/swift-build/tree/main/Sources
Репозиторий swiftlang/swift-build
представляет собой высокоуровневую систему сборки, разработанную на основе llbuild
. Эта система используется в Xcode, Swift Playground и Swift Package Manager (SwiftPM) для сборки проектов и пакетов на языке Swift.
• Основана на llbuild
: Использует низкоуровневый движок сборки, обеспечивая высокую производительность и масштабируемость для проектов с миллионами зависимостей .
• Поддержка PIF (Project Interchange Format)
: Swift Build не обрабатывает напрямую файлы .xcodeproj
или Package.swift
. Вместо этого, инструменты, такие как Xcode или SwiftPM, преобразуют эти файлы в формат PIF
, который затем используется Swift Build для выполнения сборки .
• Интеграция с Xcode и SwiftPM: Swift Build является движком сборки, используемым в Xcode и SwiftPM. В SwiftPM его можно активировать с помощью флага —build-system=swiftbuild
.
• Плагинная архитектура: Поддерживает плагины, такие как SWBApplePlatform
, для обработки специфичных для платформ задач, например, компиляции Asset Catalog или Core Data. Это обеспечивает модульность и расширяемость системы .
Каталог Sources содержит исходный код основных компонентов Swift Build. Здесь находятся модули, реализующие:
• SWBBuildService
: Основной сервис сборки, управляющий процессом сборки проектов.
• SWBTaskConstruction
: Модуль, отвечающий за построение графа задач сборки.
• SWBApplePlatform
: Плагин, обеспечивающий поддержку специфичных для платформ Apple функций.
Эти модули работают совместно, обеспечивая гибкую и мощную систему сборки для проектов на Swift.
Для тестирования изменений в Swift Build можно использовать следующие команды:
• С Xcode: Запустите swift package —disable-sandbox launch-xcode
из корня репозитория, чтобы открыть Xcode, настроенный для использования вашей версии Swift Build.
• С xcodebuild
: Используйте swift package —disable-sandbox run-xcodebuild
для запуска xcodebuild
, настроенного на использование вашей версии Swift Build.
Для отладки можно прикрепиться к процессу SWBBuildServiceBundle
через Xcode, что позволяет устанавливать точки останова и отслеживать выполнение кода .
Дополнительную техническую документацию можно найти в каталоге SwiftBuild.docc
. Для просмотра документации в браузере выполните команду:
docc preview SwiftBuild.docc
На macOS можно использовать:
xcrun docc preview SwiftBuild.docc
Проект открыт для вкладов. Перед отправкой изменений рекомендуется ознакомиться с руководством по внесению изменений в Swift и убедиться, что ваши изменения соответствуют установленным стандартам. Для тестирования изменений используйте команду swift test
из корня репозитория .