Skip to content

Commit 1f67d96

Browse files
authored
Revert "[BuildDescription] Add a way to get (recursive) dependencies from a module build description"
This reverts commit f330f94.
1 parent 1e51571 commit 1f67d96

File tree

6 files changed

+2
-150
lines changed

6 files changed

+2
-150
lines changed

Sources/Build/BuildDescription/ClangModuleBuildDescription.swift

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -526,17 +526,3 @@ public final class ClangModuleBuildDescription {
526526
)
527527
}
528528
}
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: 1 addition & 35 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
@@ -159,37 +158,4 @@ extension ModuleBuildDescription: Identifiable {
159158
public var id: ID {
160159
ID(moduleID: self.module.id, destination: self.destination)
161160
}
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-
}
161+
}

Sources/Build/BuildDescription/SwiftModuleBuildDescription.swift

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -988,17 +988,3 @@ public final class SwiftModuleBuildDescription {
988988
return arguments
989989
}
990990
}
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/BuildPlan/BuildPlan.swift

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1137,15 +1137,12 @@ extension BuildPlan {
11371137
onProduct: (ResolvedProduct, BuildParameters.Destination, ProductBuildDescription?) -> Void,
11381138
onModule: (ResolvedModule, BuildParameters.Destination, ModuleBuildDescription?) -> Void
11391139
) {
1140-
var visited = Set<TraversalNode>()
11411140
func successors(
11421141
for product: ResolvedProduct,
11431142
destination: Destination
11441143
) -> [TraversalNode] {
11451144
product.modules.map { module in
11461145
TraversalNode(module: module, context: destination)
1147-
}.filter {
1148-
visited.insert($0).inserted
11491146
}
11501147
}
11511148

@@ -1162,8 +1159,6 @@ extension BuildPlan {
11621159
case .module(let module, _):
11631160
partial.append(.init(module: module, context: destination))
11641161
}
1165-
}.filter {
1166-
visited.insert($0).inserted
11671162
}
11681163
}
11691164

Sources/SPMBuildCore/BuildParameters/BuildParameters.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public struct BuildParameters: Encodable {
3838
}
3939

4040
/// The destination for which code should be compiled for.
41-
public enum Destination: Hashable, Encodable {
41+
public enum Destination: Encodable {
4242
/// The destination for which build tools are compiled.
4343
case host
4444

Tests/BuildTests/BuildPlanTraversalTests.swift

Lines changed: 0 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -185,86 +185,5 @@ final class BuildPlanTraversalTests: XCTestCase {
185185
XCTAssertEqual(moduleDependencies[index].1, .host)
186186
XCTAssertNotNil(moduleDependencies[index].2)
187187
}
188-
189-
let directDependencies = mmioModule.dependencies(using: plan)
190-
191-
XCTAssertEqual(directDependencies.count, 1)
192-
193-
let dependency = try XCTUnwrap(directDependencies.first)
194-
if case .module(let module, let description) = dependency {
195-
XCTAssertEqual(module.name, "MMIOMacros")
196-
try XCTAssertEqual(XCTUnwrap(description).destination, .host)
197-
} else {
198-
XCTFail("Expected MMIOMacros module")
199-
}
200-
201-
let dependencies = mmioModule.recursiveDependencies(using: plan)
202-
203-
XCTAssertEqual(dependencies.count, 3)
204-
205-
// MMIOMacros (module) -> SwiftSyntax (product) -> SwiftSyntax (module)
206-
207-
if case .module(let module, let description) = dependencies[0] {
208-
XCTAssertEqual(module.name, "MMIOMacros")
209-
try XCTAssertEqual(XCTUnwrap(description).destination, .host)
210-
} else {
211-
XCTFail("Expected MMIOMacros module")
212-
}
213-
214-
if case .product(let product, let description) = dependencies[1] {
215-
XCTAssertEqual(product.name, "SwiftSyntax")
216-
XCTAssertNil(description)
217-
} else {
218-
XCTFail("Expected SwiftSyntax product")
219-
}
220-
221-
if case .module(let module, let description) = dependencies[2] {
222-
XCTAssertEqual(module.name, "SwiftSyntax")
223-
try XCTAssertEqual(XCTUnwrap(description).destination, .host)
224-
} else {
225-
XCTFail("Expected SwiftSyntax module")
226-
}
227-
}
228-
229-
func testRecursiveDependencyTraversalWithDuplicates() async throws {
230-
let destinationTriple = Triple.arm64Linux
231-
let toolsTriple = Triple.x86_64MacOS
232-
233-
let (graph, fs, scope) = try macrosTestsPackageGraph()
234-
let plan = try await BuildPlan(
235-
destinationBuildParameters: mockBuildParameters(
236-
destination: .target,
237-
triple: destinationTriple
238-
),
239-
toolsBuildParameters: mockBuildParameters(
240-
destination: .host,
241-
triple: toolsTriple
242-
),
243-
graph: graph,
244-
fileSystem: fs,
245-
observabilityScope: scope
246-
)
247-
248-
let testModule = try XCTUnwrap(plan.description(for: graph.module(for: "MMIOMacrosTests")!, context: .host))
249-
250-
let dependencies = testModule.recursiveDependencies(using: plan)
251-
XCTAssertEqual(dependencies.count, 9)
252-
253-
struct ModuleResult: Hashable {
254-
let module: ResolvedModule
255-
let destination: Dest
256-
}
257-
258-
var uniqueModules = Set<ModuleResult>()
259-
for dependency in dependencies {
260-
if case .module(let module, let description) = dependency {
261-
XCTAssertNotNil(description)
262-
XCTAssertEqual(description!.destination, .host)
263-
XCTAssertTrue(
264-
uniqueModules.insert(.init(module: module, destination: description!.destination))
265-
.inserted
266-
)
267-
}
268-
}
269188
}
270189
}

0 commit comments

Comments
 (0)