@@ -26,6 +26,7 @@ import class PackageModel.Product
2626import struct PackageModel. Platform
2727import struct PackageModel. PlatformVersion
2828import struct PackageModel. Resource
29+ import struct PackageModel. PackageIdentity
2930import enum PackageModel. ProductType
3031
3132import struct PackageGraph. ModulesGraph
@@ -347,19 +348,25 @@ public final class PackagePIFBuilder {
347348
348349 public struct LinkedPackageBinary {
349350 public let name : String
350- public let packageName : String
351351 public let type : BinaryType
352+ public let packageIdentity : PackageIdentity
352353
353354 @frozen
354355 public enum BinaryType {
355356 case product
356357 case target
357358 }
358359
359- public init ( name: String , packageName: String , type: BinaryType ) {
360- self . name = name
361- self . packageName = packageName
362- self . type = type
360+ public init ( product: String , packageIdentity: PackageIdentity ) {
361+ self . name = product
362+ self . type = . product
363+ self . packageIdentity = packageIdentity
364+ }
365+
366+ public init ( module: String , packageIdentity: PackageIdentity ) {
367+ self . name = module
368+ self . type = . target
369+ self . packageIdentity = packageIdentity
363370 }
364371 }
365372
@@ -695,29 +702,27 @@ enum PIFBuildingError: Error {
695702}
696703
697704extension PackagePIFBuilder . LinkedPackageBinary {
698- init ? ( module: ResolvedModule , package : ResolvedPackage ) {
699- let packageName = package . manifest. displayName
700-
705+ init ? ( module: ResolvedModule ) {
701706 switch module. type {
702707 case . executable, . snippet, . test:
703- self . init ( name : module. name, packageName : packageName , type : . product )
708+ self . init ( product : module. name, packageIdentity : module . packageIdentity )
704709
705710 case . library, . binary, . macro:
706- self . init ( name : module. name, packageName : packageName , type : . target )
711+ self . init ( module : module. name, packageIdentity : module . packageIdentity )
707712
708713 case . systemModule, . plugin:
709714 return nil
710715 }
711716 }
712717
713- init ? ( dependency: ResolvedModule . Dependency , package : ResolvedPackage ) {
718+ init ? ( dependency: ResolvedModule . Dependency ) {
714719 switch dependency {
715720 case . product( let productDependency, _) :
716721 guard productDependency. hasSourceTargets else { return nil }
717- self . init ( name : productDependency. name, packageName : package . name , type : . product )
722+ self . init ( product : productDependency. name, packageIdentity : productDependency . packageIdentity )
718723
719724 case . module( let moduleDependency, _) :
720- self . init ( module: moduleDependency, package : package )
725+ self . init ( module: moduleDependency)
721726 }
722727 }
723728}
0 commit comments