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