From 45e09364db50dc0d6495d7f72ac55186cf370fb0 Mon Sep 17 00:00:00 2001 From: Owen Voorhees Date: Mon, 8 Dec 2025 12:26:28 -0800 Subject: [PATCH] Set explicit file types in PIF for binary artifacts --- .../PackagePIFProjectBuilder+Modules.swift | 15 ++++++++++++++- .../PackagePIFProjectBuilder+Products.swift | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) 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