Skip to content

Commit a9904dd

Browse files
committed
Fix build errors after rebase
1 parent fd48c4b commit a9904dd

File tree

2 files changed

+33
-8
lines changed

2 files changed

+33
-8
lines changed

Sources/PackageGraph/Resolution/ResolvedProduct.swift

+19-5
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ public struct ResolvedProduct: Hashable {
3939
/// The list of platforms that are supported by this product.
4040
public let supportedPlatforms: [SupportedPlatform]
4141

42+
/// Triple for which this resolved product should be compiled for.
43+
public let buildTriple: BuildTriple
44+
4245
public let platformVersionProvider: PlatformVersionProvider
4346

4447
/// The main executable target of product.
@@ -60,11 +63,24 @@ public struct ResolvedProduct: Hashable {
6063

6164
public init(product: Product, targets: [ResolvedTarget]) {
6265
assert(product.targets.count == targets.count && product.targets.map(\.name) == targets.map(\.name))
63-
let (supportedPlatforms, platformVersionProvider) = Self.computePlatforms(targets: targets)
6466
let defaultLocalization = targets.first?.defaultLocalization
65-
67+
68+
let processedTargets: [ResolvedTarget]
69+
if product.type == .macro || product.type == .plugin {
70+
self.buildTriple = .buildTools
71+
processedTargets = targets.map(\.buildToolsTarget)
72+
} else {
73+
self.buildTriple = .buildProducts
74+
processedTargets = targets
75+
}
76+
6677
self.underlying = product
67-
self.targets = targets
78+
self.targets = processedTargets
79+
80+
let (supportedPlatforms, platformVersionProvider) = Self.computePlatforms(targets: targets)
81+
self.supportedPlatforms = supportedPlatforms
82+
self.platformVersionProvider = platformVersionProvider
83+
6884
self.testEntryPointTarget = product.testEntryPointPath.map { testEntryPointPath in
6985
// Create an executable resolved target with the entry point file, adding product's targets as dependencies.
7086
let dependencies: [Target.Dependency] = product.targets.map { .target($0, conditions: []) }
@@ -88,8 +104,6 @@ public struct ResolvedProduct: Hashable {
88104
// defaultLocalization is currently shared across the entire package
89105
// this may need to be enhanced if / when we support localization per target or product
90106
self.defaultLocalization = defaultLocalization
91-
self.supportedPlatforms = supportedPlatforms
92-
self.platformVersionProvider = platformVersionProvider
93107
}
94108

95109
/// True if this product contains Swift targets.

Sources/PackageGraph/Resolution/ResolvedTarget.swift

+14-3
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public struct ResolvedTarget: Hashable {
7474
switch self {
7575
case let .product(product, conditions):
7676
let targets = product.targets.map(\.buildToolsTarget)
77-
let buildToolsProduct = ResolvedProduct(product: product.underlyingProduct, targets: targets)
77+
let buildToolsProduct = ResolvedProduct(product: product.underlying, targets: targets)
7878
return .product(buildToolsProduct, conditions: conditions)
7979

8080
case let .target(target, conditions):
@@ -84,7 +84,7 @@ public struct ResolvedTarget: Hashable {
8484
}
8585

8686
/// Triple for which this resolved target should be compiled for.
87-
public let buildTriple: BuildTriple
87+
public private(set) var buildTriple: BuildTriple
8888

8989
/// The name of this target.
9090
public var name: String {
@@ -169,7 +169,7 @@ public struct ResolvedTarget: Hashable {
169169
let triple: BuildTriple
170170

171171
let processedDependencies: [Dependency]
172-
if target.type == .macro || target.type == .plugin {
172+
if underlying.type == .macro || underlying.type == .plugin {
173173
triple = .buildTools
174174
processedDependencies = dependencies.map(\.buildToolsDependency)
175175
} else {
@@ -182,6 +182,7 @@ public struct ResolvedTarget: Hashable {
182182
self.defaultLocalization = defaultLocalization
183183
self.supportedPlatforms = supportedPlatforms
184184
self.platformVersionProvider = platformVersionProvider
185+
self.buildTriple = triple
185186
}
186187

187188

@@ -191,6 +192,16 @@ public struct ResolvedTarget: Hashable {
191192
for: platform,
192193
usingXCTest: usingXCTest
193194
)
195+
}
196+
197+
/// A copy of this resolved target compiled for the build tools triple.
198+
var buildToolsTarget: ResolvedTarget {
199+
guard self.buildTriple != .buildTools else { return self }
200+
201+
var result = self
202+
result.buildTriple = .buildTools
203+
204+
return result
194205
}
195206
}
196207

0 commit comments

Comments
 (0)