Swift 构建

Swift 构建是一个基于 llbuild 的高级构建系统,对构建 Swift 提供了强大的支持。Xcode 使用它来构建 Xcode 项目和 Swift 包,Swift Playground 也使用它。当传递 --build-system swiftbuild 时,它也可以以预览形式用作 Swift Package Manager 构建系统。

用法

使用 SwiftPM

当从包含 Swift 构建集成的源构建 SwiftPM 时,传递 --build-system swiftbuild 将启用新的构建系统。此功能目前在 nightly toolchains 中不可用。

使用 Xcode

也可以在 Xcode 中测试 swift-build 的更改,使用包提供的 launch-xcode 命令插件。从 swift-build 的 checkout 运行 swift package --disable-sandbox launch-xcode 以启动当前 xcode-select 选择的 Xcode.app 副本,该副本配置为使用您修改后的构建系统服务。目前在使用 Xcode 16.2 时支持此工作流程。

使用 xcodebuild

也可以在使用 xcodebuild 中测试 swift-build 的更改,使用包提供的 run-xcodebuild 命令插件。从 swift-build 的 checkout 运行 swift package --disable-sandbox run-xcodebuild 以从当前 xcode-select 选择的 Xcode.app 运行 xcodebuild,该副本配置为使用您修改后的构建系统服务。-- 后面的参数将不经修改地转发到 xcodebuild。目前在使用 Xcode 16.2 时支持此工作流程。

文档

SwiftBuild.docc 包含额外的技术文档。

要在浏览器中查看文档,请在项目根目录运行以下命令

docc preview SwiftBuild.docc

在 macOS 上,使用

xcrun docc preview SwiftBuild.docc

测试

在提交 pull request 之前,请确保您已测试您的更改。您可以通过从仓库根目录运行 swift test 来运行完整的测试套件。测试套件被组织成许多不同的测试目标,每个目标对应一个特定的组件。例如,SWBTaskConstructionTests 包含 SWBTaskConstruction 模块的测试,该模块计划构建,然后检查生成的构建图。Swift 构建中的许多测试都在测试项目模型对象上运行,这些对象模拟由更高级别的客户端构建的对象,并验证不同层的行为。您可以在 项目测试 中了解有关如何编写和组织这些测试的更多信息。

为 Swift 构建做贡献

欢迎并鼓励为 Swift 构建做出贡献!请参阅 Swift 贡献指南

在提交 pull request 之前,请确保它们遵循 Swift 项目的 代码贡献指南。Bug 报告应在 GitHub 上 swift-build 仓库的 issue 跟踪器 中提交。

为了成为一个真正伟大的社区,Swift.org 需要欢迎来自各行各业、具有不同背景和广泛经验的开发者。一个多元化和友好的社区将拥有更多伟大的想法、更独特的视角,并产生更多伟大的代码。我们将努力使 Swift 社区对所有人表示欢迎。

为了明确我们对成员的期望,Swift 采用了 Contributor Covenant 定义的行为准则。这份文档被许多开源社区使用,我们认为它很好地表达了我们的价值观。更多信息,请参阅 行为准则

许可证

有关许可证信息,请参阅 https://swiftlang.cn/LICENSE.txt