Swift 构建技术的下一篇章
Swift 作为一种跨平台语言继续普及,支持各种用例,在各种嵌入式设备、涵盖从可穿戴设备到服务器的外形规格以及各种操作系统上均有支持。随着 Swift 的扩展,投资于配套的跨平台构建工具变得更有价值,这些工具可以在整个生态系统中提供强大、一致和灵活的体验。
作为 Swift 构建技术新篇章的基础步骤,Apple 今天开源了 Swift Build,这是一个强大且可扩展的构建引擎,为构建 Swift 项目提供了一组构建规则。Swift Build 是 Xcode 使用的引擎,它支持 App Store 中的数百万个应用程序以及 Apple 自身操作系统的内部构建流程。开源存储库还包括对面向 Linux 和 Windows 的支持。
Swift Build 介绍
构建系统的主要职责是将用户编写的输入(例如项目描述和源代码)转换为输出工件,例如命令行工具、库和应用程序。构建系统在提供出色的开发者体验方面发挥着重要作用,从而实现更高级别的功能,这些功能决定了用户如何构建和使用其项目。此外,构建系统的性能和可靠性直接影响开发人员的生产力。
Swift Build 是一个基础设施组件,旨在规划和执行由更高级别的客户端(如 Swift Package Manager 或 Xcode)请求的构建。它建立在现有的 llbuild 项目之上,以增加以下功能:
- 与 Swift 编译器强大的集成,以可靠且高效地协调 Swift 项目的构建
- 支持各种产品类型,包括库、命令行工具和具有高级构建配置选项的 GUI 应用程序
- 构建图优化,可在构建 Swift 和 C 代码时最大限度地提高并行性
Swift Build 路线图
与 Xcode 中的构建引擎相比,Swift Package Manager 中的构建引擎相当简单。在 Apple 平台上,拥有两种不同的软件包构建方式也导致了用户困惑,因为这两种实现的表现并不一致。将 Xcode 的构建引擎贡献给 Swift 项目,并在开源环境中与 Swift 编译器一起开发,为解决这些问题并为所有 Swift 用户提供出色的构建体验提供了必要的工具。通过此次发布,SwiftPM 现在有机会在所有平台上提供统一的构建执行引擎。此更改对用户应该是透明的,并保持与所有现有软件包的完全兼容性,同时提供一致的跨平台体验。与此同时,它为在所有平台和工具上实现新功能和改进奠定了基础,并解锁了新的性能优化和面向开发人员的功能。作为朝着这个愿景迈出的一小步,今天团队正在提交一个拉取请求,以开始在 SwiftPM 中集成对 Swift Build 作为备用构建引擎的支持。在接下来的几个月中,我们希望与社区合作完成构建系统集成统一的工作,以便用户可以从未来所有平台和项目模型的工具改进中受益。
我们相信,这是继续构建健康的软件包生态系统的重要一步,在该生态系统中,无论开发人员使用何种 IDE 或面向何种平台,都可以依赖一致、完善的开发体验。我们将在 Swift 论坛上分享有关此工作的更多详细信息,并且我们期待听到其他人的反馈!
参与邀请
我们期待与社区合作,继续改进我们构建 Swift 代码的方式。您可以在 GitHub 上的 Swift 组织中找到 swift-build
存储库,其中包括 README 和描述如何构建和贡献的文档。我们欢迎通过拉取请求和 issue 提交贡献,并且我们也希望在 Swift 论坛上征求有关改进的反馈和想法。
这是 Swift 构建系统激动人心的新篇章,我们期待它为 Swift 开启的所有潜力!