Skip to content

Commit cdac335

Browse files
authored
Revert "[Build] Free BuildPlan from BuildTriple" (#7882)
Reverts #7877 and #7879
1 parent 0c1bed8 commit cdac335

21 files changed

+139
-497
lines changed

Sources/Basics/Collections/IdentifiableSet.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,6 @@ public struct IdentifiableSet<Element: Identifiable>: Collection {
4242
Index(storageIndex: self.storage.elements.endIndex)
4343
}
4444

45-
public var values: some Sequence<Element> {
46-
self.storage.values
47-
}
48-
4945
public subscript(position: Index) -> Element {
5046
self.storage.elements[position.storageIndex].value
5147
}

Sources/Build/BuildDescription/ClangModuleBuildDescription.swift

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,6 @@ public final class ClangModuleBuildDescription {
4242
/// The build parameters.
4343
let buildParameters: BuildParameters
4444

45-
/// The destination for while this module is built.
46-
public var destination: BuildParameters.Destination {
47-
self.buildParameters.destination
48-
}
49-
5045
/// The build environment.
5146
var buildEnvironment: BuildEnvironment {
5247
buildParameters.buildEnvironment
@@ -526,17 +521,3 @@ public final class ClangModuleBuildDescription {
526521
)
527522
}
528523
}
529-
530-
extension ClangModuleBuildDescription {
531-
package func dependencies(
532-
using plan: BuildPlan
533-
) -> [ModuleBuildDescription.Dependency] {
534-
ModuleBuildDescription.clang(self).dependencies(using: plan)
535-
}
536-
537-
package func recursiveDependencies(
538-
using plan: BuildPlan
539-
) -> [ModuleBuildDescription.Dependency] {
540-
ModuleBuildDescription.clang(self).recursiveDependencies(using: plan)
541-
}
542-
}

Sources/Build/BuildDescription/ModuleBuildDescription.swift

Lines changed: 0 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import Basics
1414
import struct PackageGraph.ResolvedModule
1515
import struct PackageGraph.ResolvedPackage
16-
import struct PackageGraph.ResolvedProduct
1716
import struct PackageModel.Resource
1817
import struct PackageModel.ToolsVersion
1918
import struct SPMBuildCore.BuildToolPluginInvocationResult
@@ -122,15 +121,6 @@ public enum ModuleBuildDescription: SPMBuildCore.ModuleBuildDescription {
122121
}
123122
}
124123

125-
var destination: BuildParameters.Destination {
126-
switch self {
127-
case .swift(let buildDescription):
128-
buildDescription.destination
129-
case .clang(let buildDescription):
130-
buildDescription.destination
131-
}
132-
}
133-
134124
var toolsVersion: ToolsVersion {
135125
switch self {
136126
case .swift(let buildDescription):
@@ -149,47 +139,3 @@ public enum ModuleBuildDescription: SPMBuildCore.ModuleBuildDescription {
149139
}
150140
}
151141
}
152-
153-
extension ModuleBuildDescription: Identifiable {
154-
public struct ID: Hashable {
155-
let moduleID: ResolvedModule.ID
156-
let destination: BuildParameters.Destination
157-
}
158-
159-
public var id: ID {
160-
ID(moduleID: self.module.id, destination: self.destination)
161-
}
162-
}
163-
164-
extension ModuleBuildDescription {
165-
package enum Dependency {
166-
/// Not all of the modules and products have build descriptions
167-
case product(ResolvedProduct, ProductBuildDescription?)
168-
case module(ResolvedModule, ModuleBuildDescription?)
169-
}
170-
171-
package func dependencies(using plan: BuildPlan) -> [Dependency] {
172-
self.module
173-
.dependencies(satisfying: self.buildParameters.buildEnvironment)
174-
.map {
175-
switch $0 {
176-
case .product(let product, _):
177-
let productDescription = plan.description(for: product, context: self.destination)
178-
return .product(product, productDescription)
179-
case .module(let module, _):
180-
let moduleDescription = plan.description(for: module, context: self.destination)
181-
return .module(module, moduleDescription)
182-
}
183-
}
184-
}
185-
186-
package func recursiveDependencies(using plan: BuildPlan) -> [Dependency] {
187-
var dependencies: [Dependency] = []
188-
plan.traverseDependencies(of: self) { product, _, description in
189-
dependencies.append(.product(product, description))
190-
} onModule: { module, _, description in
191-
dependencies.append(.module(module, description))
192-
}
193-
return dependencies
194-
}
195-
}

Sources/Build/BuildDescription/ProductBuildDescription.swift

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,6 @@ public final class ProductBuildDescription: SPMBuildCore.ProductBuildDescription
3737
/// The build parameters.
3838
public let buildParameters: BuildParameters
3939

40-
/// The destination for while this product is built.
41-
public var destination: BuildParameters.Destination {
42-
self.buildParameters.destination
43-
}
44-
4540
/// All object files to link into this product.
4641
///
4742
// Computed during build planning.
@@ -402,17 +397,6 @@ public final class ProductBuildDescription: SPMBuildCore.ProductBuildDescription
402397
}
403398
}
404399

405-
extension ProductBuildDescription: Identifiable {
406-
public struct ID: Hashable {
407-
let productID: ResolvedProduct.ID
408-
let destination: BuildParameters.Destination
409-
}
410-
411-
public var id: ID {
412-
ID(productID: self.product.id, destination: self.destination)
413-
}
414-
}
415-
416400
extension SortedArray where Element == AbsolutePath {
417401
public static func +=<S: Sequence>(lhs: inout SortedArray, rhs: S) where S.Iterator.Element == AbsolutePath {
418402
lhs.insert(contentsOf: rhs)

Sources/Build/BuildDescription/SwiftModuleBuildDescription.swift

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,6 @@ public final class SwiftModuleBuildDescription {
4949
/// The build parameters for this target.
5050
let buildParameters: BuildParameters
5151

52-
/// The destination for while this module is built.
53-
public var destination: BuildParameters.Destination {
54-
self.buildParameters.destination
55-
}
56-
5752
/// The build parameters for the macro dependencies of this target.
5853
let macroBuildParameters: BuildParameters
5954

@@ -988,17 +983,3 @@ public final class SwiftModuleBuildDescription {
988983
return arguments
989984
}
990985
}
991-
992-
extension SwiftModuleBuildDescription {
993-
package func dependencies(
994-
using plan: BuildPlan
995-
) -> [ModuleBuildDescription.Dependency] {
996-
ModuleBuildDescription.swift(self).dependencies(using: plan)
997-
}
998-
999-
package func recursiveDependencies(
1000-
using plan: BuildPlan
1001-
) -> [ModuleBuildDescription.Dependency] {
1002-
ModuleBuildDescription.swift(self).recursiveDependencies(using: plan)
1003-
}
1004-
}

Sources/Build/BuildManifest/LLBuildManifestBuilder+Clang.swift

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -32,36 +32,30 @@ extension LLBuildManifestBuilder {
3232
inputs.append(resourcesNode)
3333
}
3434

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

41-
for dependency in target.dependencies(using: self.plan) {
41+
for dependency in target.target.dependencies(satisfying: target.buildEnvironment) {
4242
switch dependency {
43-
case .module(_, let description):
44-
addStaticTargetInputs(description)
43+
case .module(let target, _):
44+
addStaticTargetInputs(target)
4545

46-
case .product(let product, let productDescription):
46+
case .product(let product, _):
4747
switch product.type {
4848
case .executable, .snippet, .library(.dynamic), .macro:
49-
guard let productDescription else {
50-
throw InternalError("No build description for product: \(product)")
49+
guard let planProduct = plan.productMap[product.id] else {
50+
throw InternalError("unknown product \(product)")
5151
}
5252
// Establish a dependency on binary of the product.
53-
try inputs.append(file: productDescription.binaryPath)
53+
let binary = try planProduct.binaryPath
54+
inputs.append(file: binary)
5455

5556
case .library(.automatic), .library(.static), .plugin:
56-
for module in product.modules {
57-
guard let dependencyDescription = self.plan.description(
58-
for: module,
59-
context: product.type == .plugin ? .host : target.destination
60-
) else
61-
{
62-
throw InternalError("unknown module: \(module)")
63-
}
64-
addStaticTargetInputs(dependencyDescription)
57+
for target in product.modules {
58+
addStaticTargetInputs(target)
6559
}
6660
case .test:
6761
break

0 commit comments

Comments
 (0)