Swift 构建是一个基于 llbuild 的高级构建系统,对构建 Swift 提供了强大的支持。Xcode 使用它来构建 Xcode 项目和 Swift 包,Swift Playground 也使用它。当传递 --build-system swiftbuild
时,它也可以以预览形式用作 Swift Package Manager 构建系统。
当从包含 Swift 构建集成的源构建 SwiftPM 时,传递 --build-system swiftbuild
将启用新的构建系统。此功能目前在 nightly toolchains 中不可用。
也可以在 Xcode 中测试 swift-build 的更改,使用包提供的 launch-xcode
命令插件。从 swift-build 的 checkout 运行 swift package --disable-sandbox launch-xcode
以启动当前 xcode-select
选择的 Xcode.app 副本,该副本配置为使用您修改后的构建系统服务。目前在使用 Xcode 16.2 时支持此工作流程。
也可以在使用 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 贡献指南。
在提交 pull request 之前,请确保它们遵循 Swift 项目的 代码贡献指南。Bug 报告应在 GitHub 上 swift-build
仓库的 issue 跟踪器 中提交。
为了成为一个真正伟大的社区,Swift.org 需要欢迎来自各行各业、具有不同背景和广泛经验的开发者。一个多元化和友好的社区将拥有更多伟大的想法、更独特的视角,并产生更多伟大的代码。我们将努力使 Swift 社区对所有人表示欢迎。
为了明确我们对成员的期望,Swift 采用了 Contributor Covenant 定义的行为准则。这份文档被许多开源社区使用,我们认为它很好地表达了我们的价值观。更多信息,请参阅 行为准则。
有关许可证信息,请参阅 https://swiftlang.cn/LICENSE.txt。