try writePackageFile(manifest) { stream in
stream.send(
"""
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
"""
)
if packageType == .macro {
stream.send(
"""
import CompilerPluginSupport
"""
)
}
stream.send(
"""
let package = Package(
"""
)
var pkgParams = [String]()
pkgParams.append("""
name: "\(pkgname)"
""")
1条答案
按热度按时间yrwegjxp1#
正如uliwisite在评论中所说,Xcode可能只是使用
swift package init
命令来生成一个新项目。从apple/swift-package-manager的源代码来看,似乎没有Package.swift的模板 * 文件 *。Package.swift是由硬编码的字符串字面量生成的。
请参阅
InitPackage.writeManifestFile
的实现。以下是摘录:字符串
不使用模板文件的一个可能原因是Apple希望SPM是自包含的,并且不希望依赖于外部模板引擎,例如Xcode的。另一个原因可能是生成此文件的逻辑相当复杂,并且使用Swift编写它比为其编写模板更具可读性。