9.1.2 SwiftPM 6.3 发布说明
2 分钟阅读
原文链接: https://docs.swift.org/latest/documentation/packagemanagerdocs/6.3/
9.1.2 SwiftPM 6.3 发布说明
SwiftBuild:下一代构建系统的预览
SwiftBuild 正在开发中,用来取代当前的原生构建系统,并带来了若干关键改进。用现有原生(默认)构建系统能成功构建的包,应当无需改动 Package.swift 或源代码就能用 SwiftBuild 构建。
关于已知限制和平台特定问题的更多信息,参见 SwiftBuild 预览文档。
试用 SwiftBuild
你可以用 --build-system 标志预览这个构建系统:
# 使用 SwiftBuild 构建
swift build --build-system swiftbuild
# 使用 SwiftBuild 测试
swift test --build-system swiftbuild
# 使用 SwiftBuild 运行可执行文件
swift run --build-system swiftbuild MyExecutable
原生构建系统仍是默认选项,并继续得到完整支持。我们鼓励开发者试用 SwiftBuild,并就自己的体验提供反馈。
改进对 C 互操作性的构建插件支持
SwiftPM 现在正确支持由插件工具把 C 源文件生成到 C 模块目标中。此外,它还支持生成模块映射、头文件和 API notes。
这是一项实验性特性。要启用它,请在使用生成器插件的目标所对应的包清单(Package.swift)中给 swift 工具版本加上标签,如下所示:
| |
这个实验模式有一些限制。对于给定的目标,只能生成一个模块映射。该模块映射所引用的头文件必须与该模块映射位于同一目录。为模块映射中的模块生成的任何 API notes 文件也是如此。
如果生成了模块映射,你就不能在目标的公共头文件路径中再提供一个模块映射。
为了便于找到生成的公共头文件,构建系统会把插件输出目录中的 include 目录加入该模块以及所有传递依赖它的模块的 include 路径。这个目录的名称目前是固定的。
这项功能在原生的构建系统和 SwiftBuild 中都可用。
改进对宏所用预编译 Swift Syntax 的支持
对于仅被宏使用的库,SwiftPM 增加了对使用 swift-syntax 预编译产物的更好支持。这让各个宏目标之间可以共享代码。
SwiftPM 现在能检测到这类库可能被非宏目标使用,并在检测到这种情况时禁用预编译产物。之所以禁用,是因为在链接时混用 swift-syntax 预编译产物与从源码构建的 swift-syntax 已经引发了许多问题。
符号图生成:控制继承的文档
生成符号图的命令插件现在可以控制是否包含继承来的文档,为不同的文档风格提供了更好的灵活性。
包特性:更易发现
新增的 swift package show-traits 命令让发现某个包支持哪些特性变得更容易。