From d9197cd4f88929d0ec18d0417a8524a03a488bf6 Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Tue, 29 Apr 2025 13:35:06 -0700 Subject: [PATCH] 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). --- Package.swift | 39 ++++++++++--------- Sources/CMakeLists.txt | 2 +- Sources/Commands/CMakeLists.txt | 2 +- .../PackageCommands/SwiftPackageCommand.swift | 1 - Sources/Commands/SwiftBuildCommand.swift | 7 ++-- Sources/CoreCommands/BuildSystemSupport.swift | 7 ++-- Sources/CoreCommands/CMakeLists.txt | 2 +- .../ClangModuleBuildDescription.swift | 0 .../ModuleBuildDescription.swift | 0 .../PluginBuildDescription.swift | 0 .../ProductBuildDescription.swift | 0 .../ResolvedModule+BuildDescription.swift | 0 .../SwiftModuleBuildDescription.swift | 0 .../LLBuildManifestBuilder+Clang.swift | 0 .../LLBuildManifestBuilder+Product.swift | 2 +- .../LLBuildManifestBuilder+Resources.swift | 0 .../LLBuildManifestBuilder+Swift.swift | 0 .../LLBuildManifestBuilder.swift | 0 .../BuildOperation.swift | 0 .../BuildPlan/BuildPlan+Clang.swift | 0 .../BuildPlan/BuildPlan+Product.swift | 0 .../BuildPlan/BuildPlan+Swift.swift | 0 .../BuildPlan/BuildPlan+Test.swift | 0 .../BuildPlan/BuildPlan.swift | 0 .../CMakeLists.txt | 14 +++---- .../ClangSupport.swift | 0 .../LLBuildCommands.swift | 0 .../LLBuildDescription.swift | 0 .../LLBuildProgressTracker.swift | 0 .../SwiftCompilerOutputParser.swift | 0 .../TestObservation.swift | 0 .../SourceKitLSPAPI/BuildDescription.swift | 8 ++-- Sources/SourceKitLSPAPI/CMakeLists.txt | 2 +- Sources/SwiftBuildSupport/CMakeLists.txt | 2 +- Sources/XCBuildSupport/CMakeLists.txt | 2 +- .../MockBuildTestHelper.swift | 20 +++++----- Sources/swift-bootstrap/CMakeLists.txt | 2 +- Sources/swift-bootstrap/main.swift | 7 ++-- .../FileSystem/PathShimTests.swift | 1 - Tests/BuildTests/BuildOperationTests.swift | 2 +- Tests/BuildTests/BuildPlanTests.swift | 6 +-- .../BuildTests/BuildPlanTraversalTests.swift | 4 +- .../ClangTargetBuildDescriptionTests.swift | 2 +- .../CrossCompilationBuildPlanTests.swift | 8 ++-- .../LLBuildManifestBuilderTests.swift | 2 +- .../BuildTests/ModuleAliasingBuildTests.swift | 1 - Tests/BuildTests/PluginInvocationTests.swift | 4 +- Tests/BuildTests/PrepareForIndexTests.swift | 2 +- .../ProductBuildDescriptionTests.swift | 2 +- .../SwiftCompilerOutputParserTests.swift | 2 +- Tests/BuildTests/WindowsBuildPlanTests.swift | 2 +- Tests/CommandsTests/APIDiffTests.swift | 1 - .../SwiftCommandStateTests.swift | 12 +++--- .../SourceKitLSPAPITests.swift | 2 +- 54 files changed, 85 insertions(+), 87 deletions(-) rename Sources/{Build => NativeBuildSupport}/BuildDescription/ClangModuleBuildDescription.swift (100%) rename Sources/{Build => NativeBuildSupport}/BuildDescription/ModuleBuildDescription.swift (100%) rename Sources/{Build => NativeBuildSupport}/BuildDescription/PluginBuildDescription.swift (100%) rename Sources/{Build => NativeBuildSupport}/BuildDescription/ProductBuildDescription.swift (100%) rename Sources/{Build => NativeBuildSupport}/BuildDescription/ResolvedModule+BuildDescription.swift (100%) rename Sources/{Build => NativeBuildSupport}/BuildDescription/SwiftModuleBuildDescription.swift (100%) rename Sources/{Build => NativeBuildSupport}/BuildManifest/LLBuildManifestBuilder+Clang.swift (100%) rename Sources/{Build => NativeBuildSupport}/BuildManifest/LLBuildManifestBuilder+Product.swift (98%) rename Sources/{Build => NativeBuildSupport}/BuildManifest/LLBuildManifestBuilder+Resources.swift (100%) rename Sources/{Build => NativeBuildSupport}/BuildManifest/LLBuildManifestBuilder+Swift.swift (100%) rename Sources/{Build => NativeBuildSupport}/BuildManifest/LLBuildManifestBuilder.swift (100%) rename Sources/{Build => NativeBuildSupport}/BuildOperation.swift (100%) rename Sources/{Build => NativeBuildSupport}/BuildPlan/BuildPlan+Clang.swift (100%) rename Sources/{Build => NativeBuildSupport}/BuildPlan/BuildPlan+Product.swift (100%) rename Sources/{Build => NativeBuildSupport}/BuildPlan/BuildPlan+Swift.swift (100%) rename Sources/{Build => NativeBuildSupport}/BuildPlan/BuildPlan+Test.swift (100%) rename Sources/{Build => NativeBuildSupport}/BuildPlan/BuildPlan.swift (100%) rename Sources/{Build => NativeBuildSupport}/CMakeLists.txt (82%) rename Sources/{Build => NativeBuildSupport}/ClangSupport.swift (100%) rename Sources/{Build => NativeBuildSupport}/LLBuildCommands.swift (100%) rename Sources/{Build => NativeBuildSupport}/LLBuildDescription.swift (100%) rename Sources/{Build => NativeBuildSupport}/LLBuildProgressTracker.swift (100%) rename Sources/{Build => NativeBuildSupport}/SwiftCompilerOutputParser.swift (100%) rename Sources/{Build => NativeBuildSupport}/TestObservation.swift (100%) diff --git a/Package.swift b/Package.swift index fb1307104d0..db25fa05e9e 100644 --- a/Package.swift +++ b/Package.swift @@ -77,7 +77,7 @@ let swiftPMDataModelProduct = ( let swiftPMProduct = ( name: "SwiftPM", targets: swiftPMDataModelProduct.targets + [ - "Build", + "NativeBuildSupport", "LLBuildManifest", "SourceKitLSPAPI", "SPMLLBuild", @@ -205,11 +205,11 @@ let package = Package( name: "SourceKitLSPAPI", dependencies: [ "Basics", - "Build", "PackageGraph", "PackageLoading", "PackageModel", "SPMBuildCore", + "NativeBuildSupport", ], exclude: ["CMakeLists.txt"], swiftSettings: commonExperimentalFeatures + [ @@ -451,17 +451,11 @@ let package = Package( ] ), .target( - /** Builds Modules and Products */ - name: "Build", + name: "DriverSupport", dependencies: [ "Basics", - "LLBuildManifest", - "PackageGraph", - "SPMBuildCore", - "SPMLLBuild", + "PackageModel", .product(name: "SwiftDriver", package: "swift-driver"), - .product(name: "OrderedCollections", package: "swift-collections"), - "DriverSupport", ], exclude: ["CMakeLists.txt"], swiftSettings: commonExperimentalFeatures + [ @@ -469,11 +463,16 @@ let package = Package( ] ), .target( - name: "DriverSupport", + name: "NativeBuildSupport", dependencies: [ "Basics", - "PackageModel", + "LLBuildManifest", + "PackageGraph", + "SPMBuildCore", + "SPMLLBuild", .product(name: "SwiftDriver", package: "swift-driver"), + .product(name: "OrderedCollections", package: "swift-collections"), + "DriverSupport", ], exclude: ["CMakeLists.txt"], swiftSettings: commonExperimentalFeatures + [ @@ -500,7 +499,9 @@ let package = Package( "PackageGraph", ], exclude: ["CMakeLists.txt", "README.md"], - swiftSettings: commonExperimentalFeatures + swiftSettings: commonExperimentalFeatures + [ + .unsafeFlags(["-static"]), + ] ), .target( /** High level functionality */ @@ -544,11 +545,11 @@ let package = Package( dependencies: [ .product(name: "ArgumentParser", package: "swift-argument-parser"), "Basics", - "Build", "PackageLoading", "PackageModel", "PackageGraph", "Workspace", + "NativeBuildSupport", "XCBuildSupport", "SwiftBuildSupport", ], @@ -565,12 +566,12 @@ let package = Package( .product(name: "ArgumentParser", package: "swift-argument-parser"), .product(name: "OrderedCollections", package: "swift-collections"), "Basics", - "Build", "CoreCommands", "PackageGraph", "PackageModelSyntax", "SourceControl", "Workspace", + "NativeBuildSupport", "XCBuildSupport", "SwiftBuildSupport", ] + swiftSyntaxDependencies(["SwiftIDEUtils"]), @@ -666,10 +667,10 @@ let package = Package( .product(name: "ArgumentParser", package: "swift-argument-parser"), .product(name: "OrderedCollections", package: "swift-collections"), "Basics", - "Build", "PackageGraph", "PackageLoading", "PackageModel", + "NativeBuildSupport", "XCBuildSupport", "SwiftBuildSupport", ], @@ -749,7 +750,7 @@ let package = Package( /** SwiftPM internal build test suite support library */ name: "_InternalBuildTestSupport", dependencies: [ - "Build", + "NativeBuildSupport", "XCBuildSupport", "SwiftBuildSupport", "_InternalTestSupport" @@ -830,7 +831,7 @@ let package = Package( ), .testTarget( name: "BuildTests", - dependencies: ["Build", "PackageModel", "Commands", "_InternalTestSupport", "_InternalBuildTestSupport"] + dependencies: ["NativeBuildSupport", "PackageModel", "Commands", "_InternalTestSupport", "_InternalBuildTestSupport"] ), .testTarget( name: "LLBuildManifestTests", @@ -982,7 +983,7 @@ if ProcessInfo.processInfo.environment["SWIFTCI_DISABLE_SDK_DEPENDENT_TESTS"] == dependencies: [ "swift-package-manager", "Basics", - "Build", + "NativeBuildSupport", "Commands", "PackageModel", "PackageModelSyntax", diff --git a/Sources/CMakeLists.txt b/Sources/CMakeLists.txt index e9cafd35585..b726d5344e3 100644 --- a/Sources/CMakeLists.txt +++ b/Sources/CMakeLists.txt @@ -10,12 +10,12 @@ add_compile_definitions(USE_IMPL_ONLY_IMPORTS) add_subdirectory(_AsyncFileSystem) add_subdirectory(Basics) -add_subdirectory(Build) add_subdirectory(Commands) add_subdirectory(CompilerPluginSupport) add_subdirectory(CoreCommands) add_subdirectory(DriverSupport) add_subdirectory(LLBuildManifest) +add_subdirectory(NativeBuildSupport) add_subdirectory(PackageDescription) add_subdirectory(PackageFingerprint) add_subdirectory(PackageGraph) diff --git a/Sources/Commands/CMakeLists.txt b/Sources/Commands/CMakeLists.txt index 9f644e3d326..ef0f85cefa0 100644 --- a/Sources/Commands/CMakeLists.txt +++ b/Sources/Commands/CMakeLists.txt @@ -58,9 +58,9 @@ target_link_libraries(Commands PUBLIC SwiftCollections::OrderedCollections ArgumentParser Basics - Build CoreCommands LLBuildManifest + NativeBuildSupport PackageGraph PackageModelSyntax SourceControl diff --git a/Sources/Commands/PackageCommands/SwiftPackageCommand.swift b/Sources/Commands/PackageCommands/SwiftPackageCommand.swift index 88f6811c419..db0848d4125 100644 --- a/Sources/Commands/PackageCommands/SwiftPackageCommand.swift +++ b/Sources/Commands/PackageCommands/SwiftPackageCommand.swift @@ -20,7 +20,6 @@ import PackageModel import SourceControl import SPMBuildCore import Workspace -import XCBuildSupport import enum TSCUtility.Diagnostics diff --git a/Sources/Commands/SwiftBuildCommand.swift b/Sources/Commands/SwiftBuildCommand.swift index 1c6dfb45fe8..eab47f569c5 100644 --- a/Sources/Commands/SwiftBuildCommand.swift +++ b/Sources/Commands/SwiftBuildCommand.swift @@ -13,16 +13,15 @@ import ArgumentParser import Basics -import Build - @_spi(SwiftPMInternal) import CoreCommands import PackageGraph import SPMBuildCore -import XCBuildSupport -import SwiftBuildSupport + +private import NativeBuildSupport +private import SwiftBuildSupport import class Basics.AsyncProcess import var TSCBasic.stdoutStream diff --git a/Sources/CoreCommands/BuildSystemSupport.swift b/Sources/CoreCommands/BuildSystemSupport.swift index 28fa15d1407..e59c63b4e30 100644 --- a/Sources/CoreCommands/BuildSystemSupport.swift +++ b/Sources/CoreCommands/BuildSystemSupport.swift @@ -11,13 +11,14 @@ //===----------------------------------------------------------------------===// import Basics -import Build import SPMBuildCore -import XCBuildSupport -import SwiftBuildSupport import PackageGraph import Workspace +private import NativeBuildSupport +private import XCBuildSupport +private import SwiftBuildSupport + import class Basics.ObservabilityScope import struct PackageGraph.ModulesGraph import struct PackageLoading.FileRuleDescription diff --git a/Sources/CoreCommands/CMakeLists.txt b/Sources/CoreCommands/CMakeLists.txt index 54bc10b2b3b..1de87237c1d 100644 --- a/Sources/CoreCommands/CMakeLists.txt +++ b/Sources/CoreCommands/CMakeLists.txt @@ -14,7 +14,7 @@ add_library(CoreCommands target_link_libraries(CoreCommands PUBLIC ArgumentParser Basics - Build + NativeBuildSupport PackageGraph TSCBasic TSCUtility diff --git a/Sources/Build/BuildDescription/ClangModuleBuildDescription.swift b/Sources/NativeBuildSupport/BuildDescription/ClangModuleBuildDescription.swift similarity index 100% rename from Sources/Build/BuildDescription/ClangModuleBuildDescription.swift rename to Sources/NativeBuildSupport/BuildDescription/ClangModuleBuildDescription.swift diff --git a/Sources/Build/BuildDescription/ModuleBuildDescription.swift b/Sources/NativeBuildSupport/BuildDescription/ModuleBuildDescription.swift similarity index 100% rename from Sources/Build/BuildDescription/ModuleBuildDescription.swift rename to Sources/NativeBuildSupport/BuildDescription/ModuleBuildDescription.swift diff --git a/Sources/Build/BuildDescription/PluginBuildDescription.swift b/Sources/NativeBuildSupport/BuildDescription/PluginBuildDescription.swift similarity index 100% rename from Sources/Build/BuildDescription/PluginBuildDescription.swift rename to Sources/NativeBuildSupport/BuildDescription/PluginBuildDescription.swift diff --git a/Sources/Build/BuildDescription/ProductBuildDescription.swift b/Sources/NativeBuildSupport/BuildDescription/ProductBuildDescription.swift similarity index 100% rename from Sources/Build/BuildDescription/ProductBuildDescription.swift rename to Sources/NativeBuildSupport/BuildDescription/ProductBuildDescription.swift diff --git a/Sources/Build/BuildDescription/ResolvedModule+BuildDescription.swift b/Sources/NativeBuildSupport/BuildDescription/ResolvedModule+BuildDescription.swift similarity index 100% rename from Sources/Build/BuildDescription/ResolvedModule+BuildDescription.swift rename to Sources/NativeBuildSupport/BuildDescription/ResolvedModule+BuildDescription.swift diff --git a/Sources/Build/BuildDescription/SwiftModuleBuildDescription.swift b/Sources/NativeBuildSupport/BuildDescription/SwiftModuleBuildDescription.swift similarity index 100% rename from Sources/Build/BuildDescription/SwiftModuleBuildDescription.swift rename to Sources/NativeBuildSupport/BuildDescription/SwiftModuleBuildDescription.swift diff --git a/Sources/Build/BuildManifest/LLBuildManifestBuilder+Clang.swift b/Sources/NativeBuildSupport/BuildManifest/LLBuildManifestBuilder+Clang.swift similarity index 100% rename from Sources/Build/BuildManifest/LLBuildManifestBuilder+Clang.swift rename to Sources/NativeBuildSupport/BuildManifest/LLBuildManifestBuilder+Clang.swift diff --git a/Sources/Build/BuildManifest/LLBuildManifestBuilder+Product.swift b/Sources/NativeBuildSupport/BuildManifest/LLBuildManifestBuilder+Product.swift similarity index 98% rename from Sources/Build/BuildManifest/LLBuildManifestBuilder+Product.swift rename to Sources/NativeBuildSupport/BuildManifest/LLBuildManifestBuilder+Product.swift index 33eb6f4558f..5b40a61b955 100644 --- a/Sources/Build/BuildManifest/LLBuildManifestBuilder+Product.swift +++ b/Sources/NativeBuildSupport/BuildManifest/LLBuildManifestBuilder+Product.swift @@ -205,7 +205,7 @@ extension ResolvedProduct { guard let macroModule = self.modules.first else { throw InternalError("macro product \(self.name) has no targets") } - return Build.getLLBuildTargetName(macro: macroModule, buildParameters: buildParameters) + return NativeBuildSupport.getLLBuildTargetName(macro: macroModule, buildParameters: buildParameters) case .plugin: throw InternalError("unexpectedly asked for the llbuild target name of a plugin product") } diff --git a/Sources/Build/BuildManifest/LLBuildManifestBuilder+Resources.swift b/Sources/NativeBuildSupport/BuildManifest/LLBuildManifestBuilder+Resources.swift similarity index 100% rename from Sources/Build/BuildManifest/LLBuildManifestBuilder+Resources.swift rename to Sources/NativeBuildSupport/BuildManifest/LLBuildManifestBuilder+Resources.swift diff --git a/Sources/Build/BuildManifest/LLBuildManifestBuilder+Swift.swift b/Sources/NativeBuildSupport/BuildManifest/LLBuildManifestBuilder+Swift.swift similarity index 100% rename from Sources/Build/BuildManifest/LLBuildManifestBuilder+Swift.swift rename to Sources/NativeBuildSupport/BuildManifest/LLBuildManifestBuilder+Swift.swift diff --git a/Sources/Build/BuildManifest/LLBuildManifestBuilder.swift b/Sources/NativeBuildSupport/BuildManifest/LLBuildManifestBuilder.swift similarity index 100% rename from Sources/Build/BuildManifest/LLBuildManifestBuilder.swift rename to Sources/NativeBuildSupport/BuildManifest/LLBuildManifestBuilder.swift diff --git a/Sources/Build/BuildOperation.swift b/Sources/NativeBuildSupport/BuildOperation.swift similarity index 100% rename from Sources/Build/BuildOperation.swift rename to Sources/NativeBuildSupport/BuildOperation.swift diff --git a/Sources/Build/BuildPlan/BuildPlan+Clang.swift b/Sources/NativeBuildSupport/BuildPlan/BuildPlan+Clang.swift similarity index 100% rename from Sources/Build/BuildPlan/BuildPlan+Clang.swift rename to Sources/NativeBuildSupport/BuildPlan/BuildPlan+Clang.swift diff --git a/Sources/Build/BuildPlan/BuildPlan+Product.swift b/Sources/NativeBuildSupport/BuildPlan/BuildPlan+Product.swift similarity index 100% rename from Sources/Build/BuildPlan/BuildPlan+Product.swift rename to Sources/NativeBuildSupport/BuildPlan/BuildPlan+Product.swift diff --git a/Sources/Build/BuildPlan/BuildPlan+Swift.swift b/Sources/NativeBuildSupport/BuildPlan/BuildPlan+Swift.swift similarity index 100% rename from Sources/Build/BuildPlan/BuildPlan+Swift.swift rename to Sources/NativeBuildSupport/BuildPlan/BuildPlan+Swift.swift diff --git a/Sources/Build/BuildPlan/BuildPlan+Test.swift b/Sources/NativeBuildSupport/BuildPlan/BuildPlan+Test.swift similarity index 100% rename from Sources/Build/BuildPlan/BuildPlan+Test.swift rename to Sources/NativeBuildSupport/BuildPlan/BuildPlan+Test.swift diff --git a/Sources/Build/BuildPlan/BuildPlan.swift b/Sources/NativeBuildSupport/BuildPlan/BuildPlan.swift similarity index 100% rename from Sources/Build/BuildPlan/BuildPlan.swift rename to Sources/NativeBuildSupport/BuildPlan/BuildPlan.swift diff --git a/Sources/Build/CMakeLists.txt b/Sources/NativeBuildSupport/CMakeLists.txt similarity index 82% rename from Sources/Build/CMakeLists.txt rename to Sources/NativeBuildSupport/CMakeLists.txt index 495bd7a87e6..f6c32dfddd3 100644 --- a/Sources/Build/CMakeLists.txt +++ b/Sources/NativeBuildSupport/CMakeLists.txt @@ -6,7 +6,7 @@ # See http://swift.org/LICENSE.txt for license information # See http://swift.org/CONTRIBUTORS.txt for Swift project authors -add_library(Build +add_library(NativeBuildSupport BuildDescription/ClangModuleBuildDescription.swift BuildDescription/PluginBuildDescription.swift BuildDescription/ProductBuildDescription.swift @@ -30,26 +30,26 @@ add_library(Build LLBuildProgressTracker.swift SwiftCompilerOutputParser.swift TestObservation.swift) -target_link_libraries(Build PUBLIC +target_link_libraries(NativeBuildSupport PUBLIC TSCBasic Basics SwiftCollections::OrderedCollections PackageGraph SPMBuildCore) -target_link_libraries(Build PRIVATE +target_link_libraries(NativeBuildSupport PRIVATE DriverSupport LLBuildManifest SPMLLBuild SwiftDriver) -target_link_libraries(Build INTERFACE +target_link_libraries(NativeBuildSupport INTERFACE llbuildSwift) # NOTE(compnerd) workaround for CMake not setting up include flags yet -set_target_properties(Build PROPERTIES +set_target_properties(NativeBuildSupport PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_Swift_MODULE_DIRECTORY}) -install(TARGETS Build +install(TARGETS NativeBuildSupport ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin) -set_property(GLOBAL APPEND PROPERTY SwiftPM_EXPORTS Build) +set_property(GLOBAL APPEND PROPERTY SwiftPM_EXPORTS NativeBuildSupport) diff --git a/Sources/Build/ClangSupport.swift b/Sources/NativeBuildSupport/ClangSupport.swift similarity index 100% rename from Sources/Build/ClangSupport.swift rename to Sources/NativeBuildSupport/ClangSupport.swift diff --git a/Sources/Build/LLBuildCommands.swift b/Sources/NativeBuildSupport/LLBuildCommands.swift similarity index 100% rename from Sources/Build/LLBuildCommands.swift rename to Sources/NativeBuildSupport/LLBuildCommands.swift diff --git a/Sources/Build/LLBuildDescription.swift b/Sources/NativeBuildSupport/LLBuildDescription.swift similarity index 100% rename from Sources/Build/LLBuildDescription.swift rename to Sources/NativeBuildSupport/LLBuildDescription.swift diff --git a/Sources/Build/LLBuildProgressTracker.swift b/Sources/NativeBuildSupport/LLBuildProgressTracker.swift similarity index 100% rename from Sources/Build/LLBuildProgressTracker.swift rename to Sources/NativeBuildSupport/LLBuildProgressTracker.swift diff --git a/Sources/Build/SwiftCompilerOutputParser.swift b/Sources/NativeBuildSupport/SwiftCompilerOutputParser.swift similarity index 100% rename from Sources/Build/SwiftCompilerOutputParser.swift rename to Sources/NativeBuildSupport/SwiftCompilerOutputParser.swift diff --git a/Sources/Build/TestObservation.swift b/Sources/NativeBuildSupport/TestObservation.swift similarity index 100% rename from Sources/Build/TestObservation.swift rename to Sources/NativeBuildSupport/TestObservation.swift diff --git a/Sources/SourceKitLSPAPI/BuildDescription.swift b/Sources/SourceKitLSPAPI/BuildDescription.swift index c8b486400e2..5667604a374 100644 --- a/Sources/SourceKitLSPAPI/BuildDescription.swift +++ b/Sources/SourceKitLSPAPI/BuildDescription.swift @@ -16,7 +16,7 @@ import TSCBasic // Ideally wouldn't expose these (it defeats the purpose of this module), but we should replace this entire API with // a BSP server, so this is good enough for now (and LSP is using all these types internally anyway). import Basics -import Build +import NativeBuildSupport import PackageGraph internal import PackageLoading internal import PackageModel @@ -201,14 +201,14 @@ private struct WrappedSwiftTargetBuildDescription: BuildTarget { } public struct BuildDescription { - private let buildPlan: Build.BuildPlan + private let buildPlan: NativeBuildSupport.BuildPlan /// The inputs of the build plan so we don't need to re-compute them on every call to /// `fileAffectsSwiftOrClangBuildSettings`. - private let inputs: [Build.BuildPlan.Input] + private let inputs: [NativeBuildSupport.BuildPlan.Input] /// Wrap an already constructed build plan. - public init(buildPlan: Build.BuildPlan) { + public init(buildPlan: NativeBuildSupport.BuildPlan) { self.buildPlan = buildPlan self.inputs = buildPlan.inputs } diff --git a/Sources/SourceKitLSPAPI/CMakeLists.txt b/Sources/SourceKitLSPAPI/CMakeLists.txt index e137d8c14e8..9741c5f250e 100644 --- a/Sources/SourceKitLSPAPI/CMakeLists.txt +++ b/Sources/SourceKitLSPAPI/CMakeLists.txt @@ -11,7 +11,7 @@ add_library(SourceKitLSPAPI STATIC PluginTargetBuildDescription.swift) target_link_libraries(SourceKitLSPAPI PUBLIC Basics - Build + NativeBuildSupport PackageGraph SPMBuildCore) target_link_libraries(SourceKitLSPAPI PRIVATE diff --git a/Sources/SwiftBuildSupport/CMakeLists.txt b/Sources/SwiftBuildSupport/CMakeLists.txt index 1a7b9eca3ad..2ffb4ac0268 100644 --- a/Sources/SwiftBuildSupport/CMakeLists.txt +++ b/Sources/SwiftBuildSupport/CMakeLists.txt @@ -18,8 +18,8 @@ add_library(SwiftBuildSupport STATIC PIFBuilder.swift SwiftBuildSystem.swift) target_link_libraries(SwiftBuildSupport PUBLIC - Build DriverSupport + SPMBuildCore TSCBasic TSCUtility PackageGraph diff --git a/Sources/XCBuildSupport/CMakeLists.txt b/Sources/XCBuildSupport/CMakeLists.txt index 9b5f95e7eee..b1a9e3f2eb4 100644 --- a/Sources/XCBuildSupport/CMakeLists.txt +++ b/Sources/XCBuildSupport/CMakeLists.txt @@ -14,8 +14,8 @@ add_library(XCBuildSupport STATIC XCBuildOutputParser.swift XcodeBuildSystem.swift) target_link_libraries(XCBuildSupport PUBLIC - Build DriverSupport + SPMBuildCore TSCBasic TSCUtility SwiftCollections::OrderedCollections diff --git a/Sources/_InternalBuildTestSupport/MockBuildTestHelper.swift b/Sources/_InternalBuildTestSupport/MockBuildTestHelper.swift index bcdc42a519a..e537aa48c1d 100644 --- a/Sources/_InternalBuildTestSupport/MockBuildTestHelper.swift +++ b/Sources/_InternalBuildTestSupport/MockBuildTestHelper.swift @@ -13,7 +13,7 @@ import Basics @_spi(SwiftPMInternal) -import Build +import NativeBuildSupport import _InternalTestSupport import struct PackageGraph.ModulesGraph @@ -37,7 +37,7 @@ public func mockBuildPlan( targetSanitizers: EnabledSanitizers = .init(), fileSystem fs: any FileSystem, observabilityScope: ObservabilityScope -) async throws -> Build.BuildPlan { +) async throws -> NativeBuildSupport.BuildPlan { try await mockBuildPlan( buildPath: buildPath, config: environment.configuration ?? .debug, @@ -70,7 +70,7 @@ public func mockBuildPlan( targetSanitizers: EnabledSanitizers = .init(), fileSystem fs: any FileSystem, observabilityScope: ObservabilityScope -) async throws -> Build.BuildPlan { +) async throws -> NativeBuildSupport.BuildPlan { let inferredTriple: Basics.Triple if let platform { precondition(triple == nil) @@ -160,17 +160,17 @@ enum BuildError: Swift.Error { } public struct BuildPlanResult { - public let plan: Build.BuildPlan + public let plan: NativeBuildSupport.BuildPlan - public var productMap: IdentifiableSet { + public var productMap: IdentifiableSet { self.plan.productMap } - public var targetMap: IdentifiableSet { + public var targetMap: IdentifiableSet { self.plan.targetMap } - public init(plan: Build.BuildPlan) throws { + public init(plan: NativeBuildSupport.BuildPlan) throws { self.plan = plan } @@ -182,7 +182,7 @@ public struct BuildPlanResult { XCTAssertEqual(self.productMap.count, count, file: file, line: line) } - public func moduleBuildDescription(for name: String) throws -> Build.ModuleBuildDescription { + public func moduleBuildDescription(for name: String) throws -> NativeBuildSupport.ModuleBuildDescription { let matches = self.targetMap.filter({ $0.module.name == name }) guard matches.count == 1 else { if matches.isEmpty { @@ -194,7 +194,7 @@ public struct BuildPlanResult { return matches.first! } - public func buildProduct(for name: String) throws -> Build.ProductBuildDescription { + public func buildProduct(for name: String) throws -> NativeBuildSupport.ProductBuildDescription { let matches = self.productMap.filter({ $0.product.name == name }) guard matches.count == 1 else { if matches.isEmpty { @@ -208,7 +208,7 @@ public struct BuildPlanResult { } } -extension Build.ModuleBuildDescription { +extension NativeBuildSupport.ModuleBuildDescription { public func swift() throws -> SwiftModuleBuildDescription { switch self { case .swift(let description): diff --git a/Sources/swift-bootstrap/CMakeLists.txt b/Sources/swift-bootstrap/CMakeLists.txt index 885163ba5e3..393d8d995b2 100644 --- a/Sources/swift-bootstrap/CMakeLists.txt +++ b/Sources/swift-bootstrap/CMakeLists.txt @@ -11,7 +11,7 @@ add_executable(swift-bootstrap target_link_libraries(swift-bootstrap PRIVATE ArgumentParser Basics - Build + NativeBuildSupport PackageGraph PackageLoading PackageModel diff --git a/Sources/swift-bootstrap/main.swift b/Sources/swift-bootstrap/main.swift index ce22ee20825..2220ff39094 100644 --- a/Sources/swift-bootstrap/main.swift +++ b/Sources/swift-bootstrap/main.swift @@ -13,7 +13,6 @@ import ArgumentParser import Basics import _Concurrency -import Build import Dispatch @_spi(SwiftPMInternal) @@ -25,8 +24,10 @@ import PackageGraph import PackageLoading import PackageModel import SPMBuildCore -import XCBuildSupport -import SwiftBuildSupport + +private import NativeBuildSupport +private import XCBuildSupport +private import SwiftBuildSupport import struct TSCBasic.KeyedPair import func TSCBasic.topologicalSort diff --git a/Tests/BasicsTests/FileSystem/PathShimTests.swift b/Tests/BasicsTests/FileSystem/PathShimTests.swift index 6f0af62a76f..d07598e87d5 100644 --- a/Tests/BasicsTests/FileSystem/PathShimTests.swift +++ b/Tests/BasicsTests/FileSystem/PathShimTests.swift @@ -74,7 +74,6 @@ class WalkTests: XCTestCase { .appending(component: "Sources") var expected = [ root.appending(component: "Basics"), - root.appending(component: "Build"), root.appending(component: "Commands"), ] for x in try! walk(root) { diff --git a/Tests/BuildTests/BuildOperationTests.swift b/Tests/BuildTests/BuildOperationTests.swift index af243134cb5..398d41fce53 100644 --- a/Tests/BuildTests/BuildOperationTests.swift +++ b/Tests/BuildTests/BuildOperationTests.swift @@ -10,7 +10,7 @@ // //===----------------------------------------------------------------------===// -@testable import Build +@testable import NativeBuildSupport @testable import PackageModel import Basics diff --git a/Tests/BuildTests/BuildPlanTests.swift b/Tests/BuildTests/BuildPlanTests.swift index 5c9ac3c9ce9..abcf5af6783 100644 --- a/Tests/BuildTests/BuildPlanTests.swift +++ b/Tests/BuildTests/BuildPlanTests.swift @@ -11,7 +11,7 @@ //===----------------------------------------------------------------------===// @testable import Basics -@testable import Build +@testable import NativeBuildSupport @testable @_spi(SwiftPMInternal) @@ -37,7 +37,7 @@ import func TSCBasic.withTemporaryFile import enum TSCUtility.Diagnostics -extension Build.BuildPlan { +extension NativeBuildSupport.BuildPlan { var productsBuildPath: AbsolutePath { let buildParameters = self.destinationBuildParameters let buildConfigurationComponent = buildParameters.buildEnvironment @@ -3670,7 +3670,7 @@ class BuildPlanTestCase: BuildSystemProviderTestCase { ) XCTFail() } catch { - if let buildError = error as? Build.BuildPlan.Error { + if let buildError = error as? NativeBuildSupport.BuildPlan.Error { XCTAssert(buildError == .noBuildableTarget) } else { XCTFail() diff --git a/Tests/BuildTests/BuildPlanTraversalTests.swift b/Tests/BuildTests/BuildPlanTraversalTests.swift index ed469887d60..a9bc071e9b3 100644 --- a/Tests/BuildTests/BuildPlanTraversalTests.swift +++ b/Tests/BuildTests/BuildPlanTraversalTests.swift @@ -13,7 +13,7 @@ import XCTest import Basics -@testable import Build +@testable import NativeBuildSupport import PackageGraph @@ -141,7 +141,7 @@ final class BuildPlanTraversalTests: XCTestCase { let mmioModule = try XCTUnwrap(plan.description(for: graph.module(for: "MMIO")!, context: .target)) - var moduleDependencies: [(ResolvedModule, Dest, Build.ModuleBuildDescription?)] = [] + var moduleDependencies: [(ResolvedModule, Dest, NativeBuildSupport.ModuleBuildDescription?)] = [] plan.traverseDependencies(of: mmioModule) { product, destination, description in XCTAssertEqual(product.name, "SwiftSyntax") XCTAssertEqual(destination, .host) diff --git a/Tests/BuildTests/ClangTargetBuildDescriptionTests.swift b/Tests/BuildTests/ClangTargetBuildDescriptionTests.swift index 317bd624c95..4e3aad8da5d 100644 --- a/Tests/BuildTests/ClangTargetBuildDescriptionTests.swift +++ b/Tests/BuildTests/ClangTargetBuildDescriptionTests.swift @@ -11,7 +11,7 @@ //===----------------------------------------------------------------------===// import Basics -@testable import Build +@testable import NativeBuildSupport import PackageGraph import PackageModel import SPMBuildCore diff --git a/Tests/BuildTests/CrossCompilationBuildPlanTests.swift b/Tests/BuildTests/CrossCompilationBuildPlanTests.swift index 698ad2c8183..23f142351d2 100644 --- a/Tests/BuildTests/CrossCompilationBuildPlanTests.swift +++ b/Tests/BuildTests/CrossCompilationBuildPlanTests.swift @@ -13,10 +13,10 @@ import struct Basics.AbsolutePath import class Basics.InMemoryFileSystem import class Basics.ObservabilitySystem -import class Build.BuildPlan -import class Build.ProductBuildDescription -@testable import enum Build.ModuleBuildDescription -import class Build.SwiftModuleBuildDescription +import class NativeBuildSupport.BuildPlan +import class NativeBuildSupport.ProductBuildDescription +@testable import enum NativeBuildSupport.ModuleBuildDescription +import class NativeBuildSupport.SwiftModuleBuildDescription import struct Basics.Triple import class PackageModel.Manifest import struct PackageModel.TargetDescription diff --git a/Tests/BuildTests/LLBuildManifestBuilderTests.swift b/Tests/BuildTests/LLBuildManifestBuilderTests.swift index 7fa466a4545..6e09b853fd1 100644 --- a/Tests/BuildTests/LLBuildManifestBuilderTests.swift +++ b/Tests/BuildTests/LLBuildManifestBuilderTests.swift @@ -11,7 +11,7 @@ //===----------------------------------------------------------------------===// import Basics -@testable import Build +@testable import NativeBuildSupport import LLBuildManifest @_spi(DontAdoptOutsideOfSwiftPMExposedForBenchmarksAndTestsOnly) diff --git a/Tests/BuildTests/ModuleAliasingBuildTests.swift b/Tests/BuildTests/ModuleAliasingBuildTests.swift index 35447c2ed6b..d221b34e1f7 100644 --- a/Tests/BuildTests/ModuleAliasingBuildTests.swift +++ b/Tests/BuildTests/ModuleAliasingBuildTests.swift @@ -11,7 +11,6 @@ //===----------------------------------------------------------------------===// import Basics -@testable import Build @_spi(DontAdoptOutsideOfSwiftPMExposedForBenchmarksAndTestsOnly) @testable import PackageGraph diff --git a/Tests/BuildTests/PluginInvocationTests.swift b/Tests/BuildTests/PluginInvocationTests.swift index cd864d057a1..12e1fd02f57 100644 --- a/Tests/BuildTests/PluginInvocationTests.swift +++ b/Tests/BuildTests/PluginInvocationTests.swift @@ -27,8 +27,8 @@ import _InternalTestSupport import Workspace import XCTest -@testable import class Build.BuildPlan -import struct Build.PluginConfiguration +@testable import class NativeBuildSupport.BuildPlan +import struct NativeBuildSupport.PluginConfiguration import struct TSCUtility.SerializedDiagnostics diff --git a/Tests/BuildTests/PrepareForIndexTests.swift b/Tests/BuildTests/PrepareForIndexTests.swift index 8c712e69b10..fc901651cf4 100644 --- a/Tests/BuildTests/PrepareForIndexTests.swift +++ b/Tests/BuildTests/PrepareForIndexTests.swift @@ -10,7 +10,7 @@ // //===----------------------------------------------------------------------===// -import Build +import NativeBuildSupport import Foundation @testable import Commands @testable import CoreCommands diff --git a/Tests/BuildTests/ProductBuildDescriptionTests.swift b/Tests/BuildTests/ProductBuildDescriptionTests.swift index 5674142e10d..ab8914d70a2 100644 --- a/Tests/BuildTests/ProductBuildDescriptionTests.swift +++ b/Tests/BuildTests/ProductBuildDescriptionTests.swift @@ -11,7 +11,7 @@ //===----------------------------------------------------------------------===// @testable -import Build +import NativeBuildSupport import class Basics.InMemoryFileSystem import class Basics.ObservabilitySystem diff --git a/Tests/BuildTests/SwiftCompilerOutputParserTests.swift b/Tests/BuildTests/SwiftCompilerOutputParserTests.swift index 89990daf851..a07f1244f85 100644 --- a/Tests/BuildTests/SwiftCompilerOutputParserTests.swift +++ b/Tests/BuildTests/SwiftCompilerOutputParserTests.swift @@ -11,7 +11,7 @@ //===----------------------------------------------------------------------===// import XCTest -import Build +import NativeBuildSupport class SwiftCompilerOutputParserTests: XCTestCase { func testParse() throws { diff --git a/Tests/BuildTests/WindowsBuildPlanTests.swift b/Tests/BuildTests/WindowsBuildPlanTests.swift index d62fa83d442..78a202e1bcc 100644 --- a/Tests/BuildTests/WindowsBuildPlanTests.swift +++ b/Tests/BuildTests/WindowsBuildPlanTests.swift @@ -13,7 +13,7 @@ import XCTest import Basics -@testable import Build +@testable import NativeBuildSupport import LLBuildManifest import _InternalTestSupport diff --git a/Tests/CommandsTests/APIDiffTests.swift b/Tests/CommandsTests/APIDiffTests.swift index b8473e4c253..9563936edb7 100644 --- a/Tests/CommandsTests/APIDiffTests.swift +++ b/Tests/CommandsTests/APIDiffTests.swift @@ -11,7 +11,6 @@ //===----------------------------------------------------------------------===// import Basics -import Build import Commands import SPMBuildCore diff --git a/Tests/CommandsTests/SwiftCommandStateTests.swift b/Tests/CommandsTests/SwiftCommandStateTests.swift index c5dc4431182..55241b7ddf4 100644 --- a/Tests/CommandsTests/SwiftCommandStateTests.swift +++ b/Tests/CommandsTests/SwiftCommandStateTests.swift @@ -11,7 +11,7 @@ //===----------------------------------------------------------------------===// @testable import Basics -@testable import Build +@testable import NativeBuildSupport @testable import Commands @testable import CoreCommands @@ -294,7 +294,7 @@ final class SwiftCommandStateTests: CommandsTestCase { fileSystem: fs, observabilityScope: observer.topScope ) - try XCTAssertMatch(plan.buildProducts.compactMap { $0 as? Build.ProductBuildDescription }.first?.linkArguments() ?? [], + try XCTAssertMatch(plan.buildProducts.compactMap { $0 as? NativeBuildSupport.ProductBuildDescription }.first?.linkArguments() ?? [], [.anySequence, "-g", "-use-ld=lld", "-Xlinker", "-debug:dwarf"]) /* -debug-info-format codeview */ @@ -308,7 +308,7 @@ final class SwiftCommandStateTests: CommandsTestCase { fileSystem: fs, observabilityScope: observer.topScope ) - try XCTAssertMatch(plan.buildProducts.compactMap { $0 as? Build.ProductBuildDescription }.first?.linkArguments() ?? [], + try XCTAssertMatch(plan.buildProducts.compactMap { $0 as? NativeBuildSupport.ProductBuildDescription }.first?.linkArguments() ?? [], [.anySequence, "-g", "-debug-info-format=codeview", "-Xlinker", "-debug"]) // Explicitly pass Linux as when the `SwiftCommandState` tests are enabled on @@ -331,7 +331,7 @@ final class SwiftCommandStateTests: CommandsTestCase { fileSystem: fs, observabilityScope: observer.topScope ) - try XCTAssertMatch(plan.buildProducts.compactMap { $0 as? Build.ProductBuildDescription }.first?.linkArguments() ?? [], + try XCTAssertMatch(plan.buildProducts.compactMap { $0 as? NativeBuildSupport.ProductBuildDescription }.first?.linkArguments() ?? [], [.anySequence, "-g", "-use-ld=lld", "-Xlinker", "-debug:dwarf"]) /* -debug-info-format none */ @@ -344,7 +344,7 @@ final class SwiftCommandStateTests: CommandsTestCase { fileSystem: fs, observabilityScope: observer.topScope ) - try XCTAssertMatch(plan.buildProducts.compactMap { $0 as? Build.ProductBuildDescription }.first?.linkArguments() ?? [], + try XCTAssertMatch(plan.buildProducts.compactMap { $0 as? NativeBuildSupport.ProductBuildDescription }.first?.linkArguments() ?? [], [.anySequence, "-gnone", .anySequence]) } @@ -408,7 +408,7 @@ final class SwiftCommandStateTests: CommandsTestCase { observabilityScope: observer.topScope ) - let arguments = try plan.buildProducts.compactMap { $0 as? Build.ProductBuildDescription }.first?.linkArguments() ?? [] + let arguments = try plan.buildProducts.compactMap { $0 as? NativeBuildSupport.ProductBuildDescription }.first?.linkArguments() ?? [] XCTAssertMatch(arguments, [.contains("/path/to/toolchain")]) } diff --git a/Tests/SourceKitLSPAPITests/SourceKitLSPAPITests.swift b/Tests/SourceKitLSPAPITests/SourceKitLSPAPITests.swift index a920599bdf3..6d1e60cea1c 100644 --- a/Tests/SourceKitLSPAPITests/SourceKitLSPAPITests.swift +++ b/Tests/SourceKitLSPAPITests/SourceKitLSPAPITests.swift @@ -11,7 +11,7 @@ //===----------------------------------------------------------------------===// import Basics -import Build +import NativeBuildSupport @_spi(DontAdoptOutsideOfSwiftPMExposedForBenchmarksAndTestsOnly) import PackageGraph