Skip to content

Commit 2d35c65

Browse files
xedinMaxDesiatov
andauthored
[6.0] NFC: Rename ResolvedTarget to ResolvedModule (#7571)
- Explanation: With host/target triples separation in the SwiftPM codebase, it gets very confusing whether at a given moment "target" refers to a module, a triple, or a low level build system target. Renamed `ResolvedTarget` to `ResolvedModule`. Added a deprecated `typealias ResolvedTarget = ResolvedModule` to allow graceful migration for users of this type. Confusion between target triples and package targets is reduced. This has no impact on how these concepts are named in user-visible APIs like `PackageDescription` and `PackagePlugin`, target there can stay as "target" for as long as needed. Remaining internal uses of "target" outside of "target triple" context, like `*TargetBuildDescription` will be renamed in future PRs. - Scope: NFC change - Main Branch PRs: #7459 - Risk: Very Low - Reviewed By: @bnbarham - Testing: No new tests are necessary (cherry picked from commit 27996b8) Co-authored-by: Max Desiatov <[email protected]>
1 parent b1c6736 commit 2d35c65

28 files changed

+133
-126
lines changed

Sources/Build/BuildDescription/ClangTargetBuildDescription.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import PackageGraph
1515
import PackageLoading
1616
import PackageModel
1717
import struct PackageGraph.ModulesGraph
18-
import struct PackageGraph.ResolvedTarget
18+
import struct PackageGraph.ResolvedModule
1919
import struct SPMBuildCore.BuildParameters
2020
import struct SPMBuildCore.BuildToolPluginInvocationResult
2121
import struct SPMBuildCore.PrebuildCommandResult
@@ -28,7 +28,7 @@ public final class ClangTargetBuildDescription {
2828
public let package: ResolvedPackage
2929

3030
/// The target described by this target.
31-
public let target: ResolvedTarget
31+
public let target: ResolvedModule
3232

3333
/// The underlying clang target.
3434
public let clangTarget: ClangTarget
@@ -114,7 +114,7 @@ public final class ClangTargetBuildDescription {
114114
/// Create a new target description with target and build parameters.
115115
init(
116116
package: ResolvedPackage,
117-
target: ResolvedTarget,
117+
target: ResolvedModule,
118118
toolsVersion: ToolsVersion,
119119
additionalFileRules: [FileRuleDescription] = [],
120120
buildParameters: BuildParameters,

Sources/Build/BuildDescription/PluginDescription.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public final class PluginDescription: Codable {
4343
/// Initialize a new plugin target description. The target is expected to be
4444
/// a `PluginTarget`.
4545
init(
46-
target: ResolvedTarget,
46+
target: ResolvedModule,
4747
products: [ResolvedProduct],
4848
package: ResolvedPackage,
4949
toolsVersion: ToolsVersion,

Sources/Build/BuildDescription/ProductBuildDescription.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public final class ProductBuildDescription: SPMBuildCore.ProductBuildDescription
5050
var additionalFlags: [String] = []
5151

5252
/// The list of targets that are going to be linked statically in this product.
53-
var staticTargets: [ResolvedTarget] = []
53+
var staticTargets: [ResolvedModule] = []
5454

5555
/// The list of Swift modules that should be passed to the linker. This is required for debugging to work.
5656
var swiftASTs: SortedArray<AbsolutePath> = .init()

Sources/Build/BuildDescription/SwiftTargetBuildDescription.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public final class SwiftTargetBuildDescription {
3434
public let package: ResolvedPackage
3535

3636
/// The target described by this target.
37-
public let target: ResolvedTarget
37+
public let target: ResolvedModule
3838

3939
private let swiftTarget: SwiftTarget
4040

@@ -244,7 +244,7 @@ public final class SwiftTargetBuildDescription {
244244
/// Create a new target description with target and build parameters.
245245
init(
246246
package: ResolvedPackage,
247-
target: ResolvedTarget,
247+
target: ResolvedModule,
248248
toolsVersion: ToolsVersion,
249249
additionalFileRules: [FileRuleDescription] = [],
250250
buildParameters: BuildParameters,

Sources/Build/BuildDescription/TargetBuildDescription.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
//===----------------------------------------------------------------------===//
1212

1313
import Basics
14-
import struct PackageGraph.ResolvedTarget
14+
import struct PackageGraph.ResolvedModule
1515
import struct PackageModel.Resource
1616
import struct PackageModel.ToolsVersion
1717
import struct SPMBuildCore.BuildToolPluginInvocationResult
@@ -61,7 +61,7 @@ public enum TargetBuildDescription {
6161
}
6262
}
6363

64-
var target: ResolvedTarget {
64+
var target: ResolvedModule {
6565
switch self {
6666
case .swift(let target):
6767
return target.target

Sources/Build/BuildManifest/LLBuildManifestBuilder+Clang.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import struct LLBuildManifest.Node
1414
import struct Basics.AbsolutePath
1515
import struct Basics.InternalError
1616
import class Basics.ObservabilityScope
17-
import struct PackageGraph.ResolvedTarget
17+
import struct PackageGraph.ResolvedModule
1818
import PackageModel
1919

2020
extension LLBuildManifestBuilder {
@@ -32,7 +32,7 @@ extension LLBuildManifestBuilder {
3232
inputs.append(resourcesNode)
3333
}
3434

35-
func addStaticTargetInputs(_ target: ResolvedTarget) {
35+
func addStaticTargetInputs(_ target: ResolvedModule) {
3636
if case .swift(let desc)? = self.plan.targetMap[target.id], target.type == .library {
3737
inputs.append(file: desc.moduleOutputPath)
3838
}

Sources/Build/BuildManifest/LLBuildManifestBuilder+Swift.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import struct Basics.TSCAbsolutePath
1717
import struct LLBuildManifest.Node
1818
import struct LLBuildManifest.LLBuildManifest
1919
import struct SPMBuildCore.BuildParameters
20-
import struct PackageGraph.ResolvedTarget
20+
import struct PackageGraph.ResolvedModule
2121
import protocol TSCBasic.FileSystem
2222
import enum TSCBasic.ProcessEnv
2323
import func TSCBasic.topologicalSort
@@ -191,9 +191,9 @@ extension LLBuildManifestBuilder {
191191
public func addTargetsToExplicitBuildManifest() throws {
192192
// Sort the product targets in topological order in order to collect and "bubble up"
193193
// their respective dependency graphs to the depending targets.
194-
let nodes: [ResolvedTarget.Dependency] = try self.plan.targetMap.keys.compactMap {
194+
let nodes: [ResolvedModule.Dependency] = try self.plan.targetMap.keys.compactMap {
195195
guard let target = self.plan.graph.allTargets[$0] else { throw InternalError("unknown target \($0)") }
196-
return ResolvedTarget.Dependency.target(target, conditions: [])
196+
return ResolvedModule.Dependency.target(target, conditions: [])
197197
}
198198
let allPackageDependencies = try topologicalSort(nodes, successors: { $0.dependencies })
199199
// Instantiate the inter-module dependency oracle which will cache commonly-scanned
@@ -415,7 +415,7 @@ extension LLBuildManifestBuilder {
415415
inputs.append(resourcesNode)
416416
}
417417

418-
func addStaticTargetInputs(_ target: ResolvedTarget) throws {
418+
func addStaticTargetInputs(_ target: ResolvedModule) throws {
419419
// Ignore C Modules.
420420
if target.underlying is SystemLibraryTarget { return }
421421
// Ignore Binary Modules.

Sources/Build/BuildManifest/LLBuildManifestBuilder.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ extension TargetBuildDescription {
316316
}
317317
}
318318

319-
extension ResolvedTarget {
319+
extension ResolvedModule {
320320
public func getCommandName(config: String) -> String {
321321
"C." + self.getLLBuildTargetName(config: config)
322322
}

Sources/Build/BuildOperation.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -533,8 +533,8 @@ public final class BuildOperation: PackageStructureDelegate, SPMBuildCore.BuildS
533533
private func plan(subset: BuildSubset? = nil) throws -> (description: BuildDescription, manifest: LLBuildManifest) {
534534
// Load the package graph.
535535
let graph = try getPackageGraph()
536-
let buildToolPluginInvocationResults: [ResolvedTarget.ID: (target: ResolvedTarget, results: [BuildToolPluginInvocationResult])]
537-
let prebuildCommandResults: [ResolvedTarget.ID: [PrebuildCommandResult]]
536+
let buildToolPluginInvocationResults: [ResolvedModule.ID: (target: ResolvedModule, results: [BuildToolPluginInvocationResult])]
537+
let prebuildCommandResults: [ResolvedModule.ID: [PrebuildCommandResult]]
538538
// Invoke any build tool plugins in the graph to generate prebuild commands and build commands.
539539
if let pluginConfiguration, !self.productsBuildParameters.shouldSkipBuilding {
540540
// Hacky workaround for rdar://120560817, but it replicates precisely enough the original behavior before
@@ -877,7 +877,7 @@ extension BuildDescription {
877877
}
878878

879879
extension BuildSubset {
880-
func recursiveDependencies(for graph: ModulesGraph, observabilityScope: ObservabilityScope) throws -> [ResolvedTarget]? {
880+
func recursiveDependencies(for graph: ModulesGraph, observabilityScope: ObservabilityScope) throws -> [ResolvedModule]? {
881881
switch self {
882882
case .allIncludingTests:
883883
return Array(graph.reachableTargets)

Sources/Build/BuildPlan/BuildPlan+Product.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import struct Basics.AbsolutePath
1414
import struct Basics.Triple
1515
import struct Basics.InternalError
1616
import struct PackageGraph.ResolvedProduct
17-
import struct PackageGraph.ResolvedTarget
17+
import struct PackageGraph.ResolvedModule
1818
import class PackageModel.BinaryTarget
1919
import class PackageModel.ClangTarget
2020

@@ -125,8 +125,8 @@ extension BuildPlan {
125125
buildParameters: BuildParameters
126126
) throws -> (
127127
dylibs: [ResolvedProduct],
128-
staticTargets: [ResolvedTarget],
129-
systemModules: [ResolvedTarget],
128+
staticTargets: [ResolvedModule],
129+
systemModules: [ResolvedModule],
130130
libraryBinaryPaths: Set<AbsolutePath>,
131131
availableTools: [String: AbsolutePath]
132132
) {
@@ -161,7 +161,7 @@ extension BuildPlan {
161161
}
162162

163163
// Sort the product targets in topological order.
164-
let nodes: [ResolvedTarget.Dependency] = product.targets.map { .target($0, conditions: []) }
164+
let nodes: [ResolvedModule.Dependency] = product.targets.map { .target($0, conditions: []) }
165165
let allTargets = try topologicalSort(nodes, successors: { dependency in
166166
switch dependency {
167167
// Include all the dependencies of a target.
@@ -186,7 +186,7 @@ extension BuildPlan {
186186
return []
187187
}
188188

189-
let productDependencies: [ResolvedTarget.Dependency] = product.targets.map { .target($0, conditions: []) }
189+
let productDependencies: [ResolvedModule.Dependency] = product.targets.map { .target($0, conditions: []) }
190190
switch product.type {
191191
case .library(.automatic), .library(.static):
192192
return productDependencies
@@ -202,8 +202,8 @@ extension BuildPlan {
202202

203203
// Create empty arrays to collect our results.
204204
var linkLibraries = [ResolvedProduct]()
205-
var staticTargets = [ResolvedTarget]()
206-
var systemModules = [ResolvedTarget]()
205+
var staticTargets = [ResolvedModule]()
206+
var systemModules = [ResolvedModule]()
207207
var libraryBinaryPaths: Set<AbsolutePath> = []
208208
var availableTools = [String: AbsolutePath]()
209209

Sources/Build/BuildPlan/BuildPlan+Test.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import struct LLBuildManifest.TestDiscoveryTool
1717
import struct LLBuildManifest.TestEntryPointTool
1818
import struct PackageGraph.ModulesGraph
1919
import struct PackageGraph.ResolvedProduct
20-
import struct PackageGraph.ResolvedTarget
20+
import struct PackageGraph.ResolvedModule
2121
import struct PackageModel.Sources
2222
import class PackageModel.SwiftTarget
2323
import class PackageModel.Target
@@ -66,7 +66,7 @@ extension BuildPlan {
6666
}
6767

6868
/// Generates test discovery targets, which contain derived sources listing the discovered tests.
69-
func generateDiscoveryTargets() throws -> (target: SwiftTarget, resolved: ResolvedTarget, buildDescription: SwiftTargetBuildDescription) {
69+
func generateDiscoveryTargets() throws -> (target: SwiftTarget, resolved: ResolvedModule, buildDescription: SwiftTargetBuildDescription) {
7070
let discoveryTargetName = "\(package.manifest.displayName)PackageDiscoveredTests"
7171
let discoveryDerivedDir = buildParameters.buildPath.appending(components: "\(discoveryTargetName).derived")
7272
let discoveryMainFile = discoveryDerivedDir.appending(component: TestDiscoveryTool.mainFileName)
@@ -84,7 +84,7 @@ extension BuildPlan {
8484
packageAccess: true, // test target is allowed access to package decls by default
8585
testDiscoverySrc: Sources(paths: discoveryPaths, root: discoveryDerivedDir)
8686
)
87-
let discoveryResolvedTarget = ResolvedTarget(
87+
let discoveryResolvedTarget = ResolvedModule(
8888
packageIdentity: testProduct.packageIdentity,
8989
underlying: discoveryTarget,
9090
dependencies: testProduct.targets.map { .target($0, conditions: []) },
@@ -110,7 +110,7 @@ extension BuildPlan {
110110
/// point API and leverages the test discovery target to reference which tests to run.
111111
func generateSynthesizedEntryPointTarget(
112112
swiftTargetDependencies: [Target.Dependency],
113-
resolvedTargetDependencies: [ResolvedTarget.Dependency]
113+
resolvedTargetDependencies: [ResolvedModule.Dependency]
114114
) throws -> SwiftTargetBuildDescription {
115115
let entryPointDerivedDir = buildParameters.buildPath.appending(components: "\(testProduct.name).derived")
116116
let entryPointMainFileName = TestEntryPointTool.mainFileName(for: buildParameters.testingParameters.library)
@@ -124,7 +124,7 @@ extension BuildPlan {
124124
packageAccess: true, // test target is allowed access to package decls
125125
testEntryPointSources: entryPointSources
126126
)
127-
let entryPointResolvedTarget = ResolvedTarget(
127+
let entryPointResolvedTarget = ResolvedModule(
128128
packageIdentity: testProduct.packageIdentity,
129129
underlying: entryPointTarget,
130130
dependencies: testProduct.targets.map { .target($0, conditions: []) } + resolvedTargetDependencies,
@@ -144,9 +144,9 @@ extension BuildPlan {
144144
)
145145
}
146146

147-
let discoveryTargets: (target: SwiftTarget, resolved: ResolvedTarget, buildDescription: SwiftTargetBuildDescription)?
147+
let discoveryTargets: (target: SwiftTarget, resolved: ResolvedModule, buildDescription: SwiftTargetBuildDescription)?
148148
let swiftTargetDependencies: [Target.Dependency]
149-
let resolvedTargetDependencies: [ResolvedTarget.Dependency]
149+
let resolvedTargetDependencies: [ResolvedModule.Dependency]
150150

151151
switch buildParameters.testingParameters.library {
152152
case .xctest:
@@ -169,7 +169,7 @@ extension BuildPlan {
169169
packageAccess: entryPointResolvedTarget.packageAccess,
170170
testEntryPointSources: entryPointResolvedTarget.underlying.sources
171171
)
172-
let entryPointResolvedTarget = ResolvedTarget(
172+
let entryPointResolvedTarget = ResolvedModule(
173173
packageIdentity: testProduct.packageIdentity,
174174
underlying: entryPointTarget,
175175
dependencies: entryPointResolvedTarget.dependencies + resolvedTargetDependencies,

0 commit comments

Comments
 (0)