diff --git a/Sources/SwiftBuildSupport/PackagePIFProjectBuilder+Modules.swift b/Sources/SwiftBuildSupport/PackagePIFProjectBuilder+Modules.swift index 0fa439ab914..6b0040341e0 100644 --- a/Sources/SwiftBuildSupport/PackagePIFProjectBuilder+Modules.swift +++ b/Sources/SwiftBuildSupport/PackagePIFProjectBuilder+Modules.swift @@ -227,6 +227,19 @@ extension PackagePIFProjectBuilder { case macro } + static func createBinaryModuleFileReference(_ binaryModule: BinaryModule, id: ProjectModel.GUID) -> FileReference { + let fileTypeIdentifier: String? + switch binaryModule.kind { + case .artifactsArchive: + fileTypeIdentifier = "wrapper.artifactbundle" + case .xcframework: + fileTypeIdentifier = "wrapper.xcframework" + case .unknown: + fileTypeIdentifier = nil + } + return FileReference(id: id, path: binaryModule.artifactPath.pathString, fileType: fileTypeIdentifier) + } + /// Constructs a *PIF target* for building a *module* as a particular type. /// An optional target identifier suffix is passed when building variants of a target. @discardableResult @@ -651,7 +664,7 @@ extension PackagePIFProjectBuilder { break } let binaryReference = self.binaryGroup.addFileReference { id in - FileReference(id: id, path: (binaryModule.artifactPath.pathString)) + return Self.createBinaryModuleFileReference(binaryModule, id: id) } if shouldLinkProduct { self.project[keyPath: sourceModuleTargetKeyPath].addLibrary { id in diff --git a/Sources/SwiftBuildSupport/PackagePIFProjectBuilder+Products.swift b/Sources/SwiftBuildSupport/PackagePIFProjectBuilder+Products.swift index e7c75b928d6..c45e4786604 100644 --- a/Sources/SwiftBuildSupport/PackagePIFProjectBuilder+Products.swift +++ b/Sources/SwiftBuildSupport/PackagePIFProjectBuilder+Products.swift @@ -346,7 +346,7 @@ extension PackagePIFProjectBuilder { break } let binaryFileRef = self.binaryGroup.addFileReference { id in - FileReference(id: id, path: binaryModule.artifactPath.pathString) + Self.createBinaryModuleFileReference(binaryModule, id: id) } let toolsVersion = self.package.manifest.toolsVersion self.project[keyPath: mainModuleTargetKeyPath].addLibrary { id in