Skip to content

Commit 6b2856a

Browse files
committed
Rename Build module to NativeBuildSupport
This module is intended to contain code exclusive to the native build system, in order to help more clearly identify the delineation between the three build system backends, and identify layering violations and new higher-level abstractions that will need to be created to delegate to the appropriate backend (SourceKit support is one major example).
1 parent e0afabb commit 6b2856a

File tree

48 files changed

+79
-81
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+79
-81
lines changed

Package.swift

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ let swiftPMDataModelProduct = (
7777
let swiftPMProduct = (
7878
name: "SwiftPM",
7979
targets: swiftPMDataModelProduct.targets + [
80-
"Build",
80+
"NativeBuildSupport",
8181
"LLBuildManifest",
8282
"SourceKitLSPAPI",
8383
"SPMLLBuild",
@@ -205,11 +205,11 @@ let package = Package(
205205
name: "SourceKitLSPAPI",
206206
dependencies: [
207207
"Basics",
208-
"Build",
209208
"PackageGraph",
210209
"PackageLoading",
211210
"PackageModel",
212211
"SPMBuildCore",
212+
"NativeBuildSupport",
213213
],
214214
exclude: ["CMakeLists.txt"],
215215
swiftSettings: commonExperimentalFeatures + [
@@ -451,29 +451,28 @@ let package = Package(
451451
]
452452
),
453453
.target(
454-
/** Builds Modules and Products */
455-
name: "Build",
454+
name: "DriverSupport",
456455
dependencies: [
457456
"Basics",
458-
"LLBuildManifest",
459-
"PackageGraph",
460-
"SPMBuildCore",
461-
"SPMLLBuild",
457+
"PackageModel",
462458
.product(name: "SwiftDriver", package: "swift-driver"),
463-
.product(name: "OrderedCollections", package: "swift-collections"),
464-
"DriverSupport",
465459
],
466460
exclude: ["CMakeLists.txt"],
467461
swiftSettings: commonExperimentalFeatures + [
468462
.unsafeFlags(["-static"]),
469463
]
470464
),
471465
.target(
472-
name: "DriverSupport",
466+
name: "NativeBuildSupport",
473467
dependencies: [
474468
"Basics",
475-
"PackageModel",
469+
"LLBuildManifest",
470+
"PackageGraph",
471+
"SPMBuildCore",
472+
"SPMLLBuild",
476473
.product(name: "SwiftDriver", package: "swift-driver"),
474+
.product(name: "OrderedCollections", package: "swift-collections"),
475+
"DriverSupport",
477476
],
478477
exclude: ["CMakeLists.txt"],
479478
swiftSettings: commonExperimentalFeatures + [
@@ -500,7 +499,9 @@ let package = Package(
500499
"PackageGraph",
501500
],
502501
exclude: ["CMakeLists.txt", "README.md"],
503-
swiftSettings: commonExperimentalFeatures
502+
swiftSettings: commonExperimentalFeatures + [
503+
.unsafeFlags(["-static"]),
504+
]
504505
),
505506
.target(
506507
/** High level functionality */
@@ -544,11 +545,11 @@ let package = Package(
544545
dependencies: [
545546
.product(name: "ArgumentParser", package: "swift-argument-parser"),
546547
"Basics",
547-
"Build",
548548
"PackageLoading",
549549
"PackageModel",
550550
"PackageGraph",
551551
"Workspace",
552+
"NativeBuildSupport",
552553
"XCBuildSupport",
553554
"SwiftBuildSupport",
554555
],
@@ -565,12 +566,12 @@ let package = Package(
565566
.product(name: "ArgumentParser", package: "swift-argument-parser"),
566567
.product(name: "OrderedCollections", package: "swift-collections"),
567568
"Basics",
568-
"Build",
569569
"CoreCommands",
570570
"PackageGraph",
571571
"PackageModelSyntax",
572572
"SourceControl",
573573
"Workspace",
574+
"NativeBuildSupport",
574575
"XCBuildSupport",
575576
"SwiftBuildSupport",
576577
] + swiftSyntaxDependencies(["SwiftIDEUtils"]),
@@ -666,10 +667,10 @@ let package = Package(
666667
.product(name: "ArgumentParser", package: "swift-argument-parser"),
667668
.product(name: "OrderedCollections", package: "swift-collections"),
668669
"Basics",
669-
"Build",
670670
"PackageGraph",
671671
"PackageLoading",
672672
"PackageModel",
673+
"NativeBuildSupport",
673674
"XCBuildSupport",
674675
"SwiftBuildSupport",
675676
],
@@ -749,7 +750,7 @@ let package = Package(
749750
/** SwiftPM internal build test suite support library */
750751
name: "_InternalBuildTestSupport",
751752
dependencies: [
752-
"Build",
753+
"NativeBuildSupport",
753754
"XCBuildSupport",
754755
"SwiftBuildSupport",
755756
"_InternalTestSupport"
@@ -830,7 +831,7 @@ let package = Package(
830831
),
831832
.testTarget(
832833
name: "BuildTests",
833-
dependencies: ["Build", "PackageModel", "Commands", "_InternalTestSupport", "_InternalBuildTestSupport"]
834+
dependencies: ["NativeBuildSupport", "PackageModel", "Commands", "_InternalTestSupport", "_InternalBuildTestSupport"]
834835
),
835836
.testTarget(
836837
name: "LLBuildManifestTests",
@@ -982,7 +983,7 @@ if ProcessInfo.processInfo.environment["SWIFTCI_DISABLE_SDK_DEPENDENT_TESTS"] ==
982983
dependencies: [
983984
"swift-package-manager",
984985
"Basics",
985-
"Build",
986+
"NativeBuildSupport",
986987
"Commands",
987988
"PackageModel",
988989
"PackageModelSyntax",

Sources/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ add_compile_definitions(USE_IMPL_ONLY_IMPORTS)
1010

1111
add_subdirectory(_AsyncFileSystem)
1212
add_subdirectory(Basics)
13-
add_subdirectory(Build)
1413
add_subdirectory(Commands)
1514
add_subdirectory(CompilerPluginSupport)
1615
add_subdirectory(CoreCommands)
1716
add_subdirectory(DriverSupport)
1817
add_subdirectory(LLBuildManifest)
18+
add_subdirectory(NativeBuildSupport)
1919
add_subdirectory(PackageDescription)
2020
add_subdirectory(PackageFingerprint)
2121
add_subdirectory(PackageGraph)

Sources/Commands/PackageCommands/SwiftPackageCommand.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import PackageModel
2020
import SourceControl
2121
import SPMBuildCore
2222
import Workspace
23-
import XCBuildSupport
2423

2524
import enum TSCUtility.Diagnostics
2625

Sources/Commands/SwiftBuildCommand.swift

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,15 @@
1313
import ArgumentParser
1414
import Basics
1515

16-
import Build
17-
1816
@_spi(SwiftPMInternal)
1917
import CoreCommands
2018

2119
import PackageGraph
2220

2321
import SPMBuildCore
24-
import XCBuildSupport
25-
import SwiftBuildSupport
22+
23+
private import NativeBuildSupport
24+
private import SwiftBuildSupport
2625

2726
import class Basics.AsyncProcess
2827
import var TSCBasic.stdoutStream

Sources/CoreCommands/BuildSystemSupport.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@
1111
//===----------------------------------------------------------------------===//
1212

1313
import Basics
14-
import Build
1514
import SPMBuildCore
16-
import XCBuildSupport
17-
import SwiftBuildSupport
1815
import PackageGraph
1916
import Workspace
2017

18+
private import NativeBuildSupport
19+
private import XCBuildSupport
20+
private import SwiftBuildSupport
21+
2122
import class Basics.ObservabilityScope
2223
import struct PackageGraph.ModulesGraph
2324
import struct PackageLoading.FileRuleDescription

Sources/Build/BuildManifest/LLBuildManifestBuilder+Product.swift renamed to Sources/NativeBuildSupport/BuildManifest/LLBuildManifestBuilder+Product.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ extension ResolvedProduct {
205205
guard let macroModule = self.modules.first else {
206206
throw InternalError("macro product \(self.name) has no targets")
207207
}
208-
return Build.getLLBuildTargetName(macro: macroModule, buildParameters: buildParameters)
208+
return NativeBuildSupport.getLLBuildTargetName(macro: macroModule, buildParameters: buildParameters)
209209
case .plugin:
210210
throw InternalError("unexpectedly asked for the llbuild target name of a plugin product")
211211
}

Sources/Build/CMakeLists.txt renamed to Sources/NativeBuildSupport/CMakeLists.txt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# See http://swift.org/LICENSE.txt for license information
77
# See http://swift.org/CONTRIBUTORS.txt for Swift project authors
88

9-
add_library(Build
9+
add_library(NativeBuildSupport
1010
BuildDescription/ClangModuleBuildDescription.swift
1111
BuildDescription/PluginBuildDescription.swift
1212
BuildDescription/ProductBuildDescription.swift
@@ -30,26 +30,26 @@ add_library(Build
3030
LLBuildProgressTracker.swift
3131
SwiftCompilerOutputParser.swift
3232
TestObservation.swift)
33-
target_link_libraries(Build PUBLIC
33+
target_link_libraries(NativeBuildSupport PUBLIC
3434
TSCBasic
3535
Basics
3636
SwiftCollections::OrderedCollections
3737
PackageGraph
3838
SPMBuildCore)
39-
target_link_libraries(Build PRIVATE
39+
target_link_libraries(NativeBuildSupport PRIVATE
4040
DriverSupport
4141
LLBuildManifest
4242
SPMLLBuild
4343
SwiftDriver)
44-
target_link_libraries(Build INTERFACE
44+
target_link_libraries(NativeBuildSupport INTERFACE
4545
llbuildSwift)
4646

4747
# NOTE(compnerd) workaround for CMake not setting up include flags yet
48-
set_target_properties(Build PROPERTIES
48+
set_target_properties(NativeBuildSupport PROPERTIES
4949
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_Swift_MODULE_DIRECTORY})
5050

51-
install(TARGETS Build
51+
install(TARGETS NativeBuildSupport
5252
ARCHIVE DESTINATION lib
5353
LIBRARY DESTINATION lib
5454
RUNTIME DESTINATION bin)
55-
set_property(GLOBAL APPEND PROPERTY SwiftPM_EXPORTS Build)
55+
set_property(GLOBAL APPEND PROPERTY SwiftPM_EXPORTS NativeBuildSupport)

Sources/SourceKitLSPAPI/BuildDescription.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import TSCBasic
1616
// Ideally wouldn't expose these (it defeats the purpose of this module), but we should replace this entire API with
1717
// a BSP server, so this is good enough for now (and LSP is using all these types internally anyway).
1818
import Basics
19-
import Build
19+
import NativeBuildSupport
2020
import PackageGraph
2121
internal import PackageLoading
2222
internal import PackageModel
@@ -201,14 +201,14 @@ private struct WrappedSwiftTargetBuildDescription: BuildTarget {
201201
}
202202

203203
public struct BuildDescription {
204-
private let buildPlan: Build.BuildPlan
204+
private let buildPlan: NativeBuildSupport.BuildPlan
205205

206206
/// The inputs of the build plan so we don't need to re-compute them on every call to
207207
/// `fileAffectsSwiftOrClangBuildSettings`.
208-
private let inputs: [Build.BuildPlan.Input]
208+
private let inputs: [NativeBuildSupport.BuildPlan.Input]
209209

210210
/// Wrap an already constructed build plan.
211-
public init(buildPlan: Build.BuildPlan) {
211+
public init(buildPlan: NativeBuildSupport.BuildPlan) {
212212
self.buildPlan = buildPlan
213213
self.inputs = buildPlan.inputs
214214
}

Sources/_InternalBuildTestSupport/MockBuildTestHelper.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import Basics
1414

1515
@_spi(SwiftPMInternal)
16-
import Build
16+
import NativeBuildSupport
1717

1818
import _InternalTestSupport
1919
import struct PackageGraph.ModulesGraph
@@ -37,7 +37,7 @@ public func mockBuildPlan(
3737
targetSanitizers: EnabledSanitizers = .init(),
3838
fileSystem fs: any FileSystem,
3939
observabilityScope: ObservabilityScope
40-
) async throws -> Build.BuildPlan {
40+
) async throws -> NativeBuildSupport.BuildPlan {
4141
try await mockBuildPlan(
4242
buildPath: buildPath,
4343
config: environment.configuration ?? .debug,
@@ -70,7 +70,7 @@ public func mockBuildPlan(
7070
targetSanitizers: EnabledSanitizers = .init(),
7171
fileSystem fs: any FileSystem,
7272
observabilityScope: ObservabilityScope
73-
) async throws -> Build.BuildPlan {
73+
) async throws -> NativeBuildSupport.BuildPlan {
7474
let inferredTriple: Basics.Triple
7575
if let platform {
7676
precondition(triple == nil)
@@ -160,17 +160,17 @@ enum BuildError: Swift.Error {
160160
}
161161

162162
public struct BuildPlanResult {
163-
public let plan: Build.BuildPlan
163+
public let plan: NativeBuildSupport.BuildPlan
164164

165-
public var productMap: IdentifiableSet<Build.ProductBuildDescription> {
165+
public var productMap: IdentifiableSet<NativeBuildSupport.ProductBuildDescription> {
166166
self.plan.productMap
167167
}
168168

169-
public var targetMap: IdentifiableSet<Build.ModuleBuildDescription> {
169+
public var targetMap: IdentifiableSet<NativeBuildSupport.ModuleBuildDescription> {
170170
self.plan.targetMap
171171
}
172172

173-
public init(plan: Build.BuildPlan) throws {
173+
public init(plan: NativeBuildSupport.BuildPlan) throws {
174174
self.plan = plan
175175
}
176176

@@ -182,7 +182,7 @@ public struct BuildPlanResult {
182182
XCTAssertEqual(self.productMap.count, count, file: file, line: line)
183183
}
184184

185-
public func moduleBuildDescription(for name: String) throws -> Build.ModuleBuildDescription {
185+
public func moduleBuildDescription(for name: String) throws -> NativeBuildSupport.ModuleBuildDescription {
186186
let matches = self.targetMap.filter({ $0.module.name == name })
187187
guard matches.count == 1 else {
188188
if matches.isEmpty {
@@ -194,7 +194,7 @@ public struct BuildPlanResult {
194194
return matches.first!
195195
}
196196

197-
public func buildProduct(for name: String) throws -> Build.ProductBuildDescription {
197+
public func buildProduct(for name: String) throws -> NativeBuildSupport.ProductBuildDescription {
198198
let matches = self.productMap.filter({ $0.product.name == name })
199199
guard matches.count == 1 else {
200200
if matches.isEmpty {
@@ -208,7 +208,7 @@ public struct BuildPlanResult {
208208
}
209209
}
210210

211-
extension Build.ModuleBuildDescription {
211+
extension NativeBuildSupport.ModuleBuildDescription {
212212
public func swift() throws -> SwiftModuleBuildDescription {
213213
switch self {
214214
case .swift(let description):

Sources/swift-bootstrap/main.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import ArgumentParser
1414
import Basics
1515
import _Concurrency
16-
import Build
1716
import Dispatch
1817

1918
@_spi(SwiftPMInternal)
@@ -25,8 +24,10 @@ import PackageGraph
2524
import PackageLoading
2625
import PackageModel
2726
import SPMBuildCore
28-
import XCBuildSupport
29-
import SwiftBuildSupport
27+
28+
private import NativeBuildSupport
29+
private import XCBuildSupport
30+
private import SwiftBuildSupport
3031

3132
import struct TSCBasic.KeyedPair
3233
import func TSCBasic.topologicalSort

Tests/BasicsTests/FileSystem/PathShimTests.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ class WalkTests: XCTestCase {
7474
.appending(component: "Sources")
7575
var expected = [
7676
root.appending(component: "Basics"),
77-
root.appending(component: "Build"),
7877
root.appending(component: "Commands"),
7978
]
8079
for x in try! walk(root) {

Tests/BuildTests/BuildOperationTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13-
@testable import Build
13+
@testable import NativeBuildSupport
1414
@testable import PackageModel
1515

1616
import Basics

0 commit comments

Comments
 (0)