From 2a2729edbc9ba90dfa327234ce3885ad3082ddfe Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Fri, 9 Sep 2022 08:43:00 -0700 Subject: [PATCH] Mostly explicit import tools-support-core APIs Switch to explicitly importing the tools-support-core API surface to identify what we are depending on. This will help ween swift-driver off of swift-tools-support-core in the long run. --- Sources/SwiftDriver/Driver/Driver.swift | 14 +++++++++++++- Sources/SwiftDriver/Driver/OutputFileMap.swift | 7 ++++++- .../SwiftDriver/Driver/ToolExecutionDelegate.swift | 8 +++++++- Sources/SwiftDriver/Execution/ArgsResolver.swift | 7 ++++++- Sources/SwiftDriver/Execution/DriverExecutor.swift | 3 ++- .../SwiftDriver/Execution/ProcessProtocol.swift | 4 +++- .../ClangVersionedDependencyResolution.swift | 2 +- .../ExplicitDependencyBuildPlanner.swift | 5 ++++- .../CommonDependencyOperations.swift | 3 ++- .../InterModuleDependencyOracle.swift | 4 +++- .../ModuleDependencyScanning.swift | 8 +++++++- .../IncrementalCompilation/BuildRecord.swift | 6 +++++- .../IncrementalCompilation/BuildRecordInfo.swift | 8 +++++++- .../DependencyGraphDotFileWriter.swift | 4 +++- .../IncrementalCompilation/DependencyKey.swift | 2 +- .../IncrementalCompilation/FirstWaveComputer.swift | 3 ++- .../IncrementalCompilationProtectedState.swift | 2 +- .../IncrementalCompilationState+Extensions.swift | 7 ++++++- .../IncrementalCompilationState.swift | 1 - .../IncrementalDependencyAndInputSetup.swift | 4 +++- .../IncrementalCompilation/InputInfo.swift | 2 +- .../ModuleDependencyGraph.swift | 3 ++- .../DependencySource.swift | 3 ++- .../ModuleDependencyGraphParts/Integrator.swift | 2 -- .../ModuleDependencyGraphParts/Node.swift | 1 - .../ModuleDependencyGraphParts/Tracer.swift | 3 ++- .../SourceFileDependencyGraph.swift | 3 ++- .../IncrementalCompilation/SwiftSourceFile.swift | 2 -- Sources/SwiftDriver/Jobs/APIDigesterJobs.swift | 2 -- Sources/SwiftDriver/Jobs/AutolinkExtractJob.swift | 3 ++- .../SwiftDriver/Jobs/CommandLineArguments.swift | 4 +++- Sources/SwiftDriver/Jobs/CompileJob.swift | 4 +++- .../Jobs/DarwinToolchain+LinkerSupport.swift | 4 +++- .../Jobs/EmitSupportedFeaturesJob.swift | 6 +++++- Sources/SwiftDriver/Jobs/FrontendJobHelpers.swift | 5 ++++- Sources/SwiftDriver/Jobs/GeneratePCHJob.swift | 2 +- .../Jobs/GenericUnixToolchain+LinkerSupport.swift | 5 ++++- Sources/SwiftDriver/Jobs/Job.swift | 3 ++- Sources/SwiftDriver/Jobs/LinkJob.swift | 4 +++- Sources/SwiftDriver/Jobs/MergeModuleJob.swift | 2 +- Sources/SwiftDriver/Jobs/Planning.swift | 8 +++++++- Sources/SwiftDriver/Jobs/PrebuiltModulesJob.swift | 11 ++++++++++- .../Jobs/Toolchain+InterpreterSupport.swift | 3 +-- .../SwiftDriver/Jobs/Toolchain+LinkerSupport.swift | 4 +++- .../Jobs/WebAssemblyToolchain+LinkerSupport.swift | 6 +++++- .../Jobs/WindowsToolchain+LinkerSupport.swift | 4 +++- Sources/SwiftDriver/SwiftScan/SwiftScan.swift | 7 +++++-- .../SwiftDriver/Toolchains/DarwinToolchain.swift | 11 +++++++++-- .../Toolchains/GenericUnixToolchain.swift | 5 ++++- Sources/SwiftDriver/Toolchains/Toolchain.swift | 7 ++++++- .../Toolchains/WebAssemblyToolchain.swift | 7 ++++++- .../SwiftDriver/Toolchains/WindowsToolchain.swift | 7 ++++++- .../Utilities/DOTJobGraphSerializer.swift | 1 - Sources/SwiftDriver/Utilities/Diagnostics.swift | 4 +++- .../Utilities/RelativePathAdditions.swift | 4 +++- Sources/SwiftDriver/Utilities/VirtualPath.swift | 12 +++++++++++- .../SwiftDriverExecution/MultiJobExecutor.swift | 11 +++++++++-- .../SwiftDriverExecution/SwiftDriverExecutor.swift | 9 ++++++++- Sources/SwiftDriverExecution/llbuild.swift | 3 ++- Sources/SwiftOptions/OptionParsing.swift | 3 ++- Sources/swift-build-sdk-interfaces/main.swift | 10 +++++++++- Sources/swift-driver/main.swift | 8 +++++++- Sources/swift-help/main.swift | 6 +++++- 63 files changed, 246 insertions(+), 70 deletions(-) diff --git a/Sources/SwiftDriver/Driver/Driver.swift b/Sources/SwiftDriver/Driver/Driver.swift index 4b17e8917..25b44965c 100644 --- a/Sources/SwiftDriver/Driver/Driver.swift +++ b/Sources/SwiftDriver/Driver/Driver.swift @@ -9,11 +9,23 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic import SwiftOptions import class Dispatch.DispatchQueue +import TSCBasic // <<< +import class TSCBasic.DiagnosticsEngine +import enum TSCBasic.ProcessEnv +import protocol TSCBasic.DiagnosticData +import protocol TSCBasic.FileSystem +import protocol TSCBasic.OutputByteStream +import struct TSCBasic.AbsolutePath +import struct TSCBasic.Diagnostic +import struct TSCBasic.FileInfo +import struct TSCBasic.RelativePath +import var TSCBasic.localFileSystem +import var TSCBasic.stderrStream +import var TSCBasic.stdoutStream import enum TSCUtility.Diagnostics import struct TSCUtility.Version diff --git a/Sources/SwiftDriver/Driver/OutputFileMap.swift b/Sources/SwiftDriver/Driver/OutputFileMap.swift index 33798dddc..5d2605043 100644 --- a/Sources/SwiftDriver/Driver/OutputFileMap.swift +++ b/Sources/SwiftDriver/Driver/OutputFileMap.swift @@ -10,11 +10,16 @@ // //===----------------------------------------------------------------------===// -import TSCBasic import struct Foundation.Data import class Foundation.JSONEncoder import class Foundation.JSONDecoder +import class TSCBasic.DiagnosticsEngine +import protocol TSCBasic.FileSystem +import struct TSCBasic.AbsolutePath +import struct TSCBasic.ByteString +import struct TSCBasic.RelativePath + /// Mapping of input file paths to specific output files. public struct OutputFileMap: Hashable, Codable { static let singleInputKey = try! VirtualPath.intern(path: ".") diff --git a/Sources/SwiftDriver/Driver/ToolExecutionDelegate.swift b/Sources/SwiftDriver/Driver/ToolExecutionDelegate.swift index 731cf847d..9176b9a03 100644 --- a/Sources/SwiftDriver/Driver/ToolExecutionDelegate.swift +++ b/Sources/SwiftDriver/Driver/ToolExecutionDelegate.swift @@ -9,7 +9,6 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic #if canImport(Darwin) import Darwin.C @@ -22,6 +21,13 @@ import Glibc #error("Missing libc or equivalent") #endif +import TSCBasic // <<< +import class TSCBasic.DiagnosticsEngine +import struct TSCBasic.Diagnostic +import struct TSCBasic.ProcessResult +import var TSCBasic.stderrStream +import var TSCBasic.stdoutStream + /// Delegate for printing execution information on the command-line. @_spi(Testing) public final class ToolExecutionDelegate: JobExecutionDelegate { /// Quasi-PIDs are _negative_ PID-like unique keys used to diff --git a/Sources/SwiftDriver/Execution/ArgsResolver.swift b/Sources/SwiftDriver/Execution/ArgsResolver.swift index e08977954..cd85fe75d 100644 --- a/Sources/SwiftDriver/Execution/ArgsResolver.swift +++ b/Sources/SwiftDriver/Execution/ArgsResolver.swift @@ -11,7 +11,12 @@ //===----------------------------------------------------------------------===// import class Foundation.NSLock -import TSCBasic + +import TSCBasic // <<< +import func TSCBasic.withTemporaryDirectory +import protocol TSCBasic.FileSystem +import struct TSCBasic.AbsolutePath + @_implementationOnly import Yams /// How the resolver is to handle usage of response files diff --git a/Sources/SwiftDriver/Execution/DriverExecutor.swift b/Sources/SwiftDriver/Execution/DriverExecutor.swift index 7a17bae88..dc5d9ff09 100644 --- a/Sources/SwiftDriver/Execution/DriverExecutor.swift +++ b/Sources/SwiftDriver/Execution/DriverExecutor.swift @@ -10,7 +10,8 @@ // //===----------------------------------------------------------------------===// -import TSCBasic +import struct TSCBasic.ProcessResult + import struct Foundation.Data import class Foundation.JSONDecoder import var Foundation.EXIT_SUCCESS diff --git a/Sources/SwiftDriver/Execution/ProcessProtocol.swift b/Sources/SwiftDriver/Execution/ProcessProtocol.swift index b23e25f94..3eead65ca 100644 --- a/Sources/SwiftDriver/Execution/ProcessProtocol.swift +++ b/Sources/SwiftDriver/Execution/ProcessProtocol.swift @@ -10,7 +10,9 @@ // //===----------------------------------------------------------------------===// -import TSCBasic +import class TSCBasic.Process +import struct TSCBasic.ProcessResult + import class Foundation.FileHandle import struct Foundation.Data diff --git a/Sources/SwiftDriver/ExplicitModuleBuilds/ClangVersionedDependencyResolution.swift b/Sources/SwiftDriver/ExplicitModuleBuilds/ClangVersionedDependencyResolution.swift index 6e25d1ffb..bc9a42115 100644 --- a/Sources/SwiftDriver/ExplicitModuleBuilds/ClangVersionedDependencyResolution.swift +++ b/Sources/SwiftDriver/ExplicitModuleBuilds/ClangVersionedDependencyResolution.swift @@ -10,7 +10,7 @@ // //===----------------------------------------------------------------------===// -import TSCBasic +import func TSCBasic.determineTempDirectory /// A map from a module identifier to a set of module dependency graphs /// Used to compute distinct graphs corresponding to different target versions for a given clang module diff --git a/Sources/SwiftDriver/ExplicitModuleBuilds/ExplicitDependencyBuildPlanner.swift b/Sources/SwiftDriver/ExplicitModuleBuilds/ExplicitDependencyBuildPlanner.swift index 5cf1dbf87..fc441aaae 100644 --- a/Sources/SwiftDriver/ExplicitModuleBuilds/ExplicitDependencyBuildPlanner.swift +++ b/Sources/SwiftDriver/ExplicitModuleBuilds/ExplicitDependencyBuildPlanner.swift @@ -9,7 +9,10 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + +import struct TSCBasic.SHA256 +import struct TSCBasic.AbsolutePath + import struct Foundation.Data import class Foundation.JSONEncoder diff --git a/Sources/SwiftDriver/ExplicitModuleBuilds/InterModuleDependencies/CommonDependencyOperations.swift b/Sources/SwiftDriver/ExplicitModuleBuilds/InterModuleDependencies/CommonDependencyOperations.swift index d6d79760b..fa1435b6c 100644 --- a/Sources/SwiftDriver/ExplicitModuleBuilds/InterModuleDependencies/CommonDependencyOperations.swift +++ b/Sources/SwiftDriver/ExplicitModuleBuilds/InterModuleDependencies/CommonDependencyOperations.swift @@ -9,7 +9,8 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + +import func TSCBasic.topologicalSort @_spi(Testing) public extension InterModuleDependencyGraph { /// For targets that are built alongside the driver's current module, the scanning action will report them as diff --git a/Sources/SwiftDriver/ExplicitModuleBuilds/InterModuleDependencies/InterModuleDependencyOracle.swift b/Sources/SwiftDriver/ExplicitModuleBuilds/InterModuleDependencies/InterModuleDependencyOracle.swift index 4a55aa0e5..1c8e8b065 100644 --- a/Sources/SwiftDriver/ExplicitModuleBuilds/InterModuleDependencies/InterModuleDependencyOracle.swift +++ b/Sources/SwiftDriver/ExplicitModuleBuilds/InterModuleDependencies/InterModuleDependencyOracle.swift @@ -10,7 +10,9 @@ // //===----------------------------------------------------------------------===// -import TSCBasic +import protocol TSCBasic.FileSystem +import struct TSCBasic.AbsolutePath + import Dispatch // An inter-module dependency oracle, responsible for responding to queries about diff --git a/Sources/SwiftDriver/ExplicitModuleBuilds/ModuleDependencyScanning.swift b/Sources/SwiftDriver/ExplicitModuleBuilds/ModuleDependencyScanning.swift index c7883ef77..f5ba224fd 100644 --- a/Sources/SwiftDriver/ExplicitModuleBuilds/ModuleDependencyScanning.swift +++ b/Sources/SwiftDriver/ExplicitModuleBuilds/ModuleDependencyScanning.swift @@ -10,7 +10,13 @@ // //===----------------------------------------------------------------------===// -import TSCBasic +import TSCBasic // <<< +import protocol TSCBasic.FileSystem +import struct TSCBasic.AbsolutePath +import struct TSCBasic.Diagnostic +import var TSCBasic.localFileSystem +import var TSCBasic.stdoutStream + import SwiftOptions import struct Foundation.Data import class Foundation.JSONEncoder diff --git a/Sources/SwiftDriver/IncrementalCompilation/BuildRecord.swift b/Sources/SwiftDriver/IncrementalCompilation/BuildRecord.swift index 7d7e90cab..6e1bea0aa 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/BuildRecord.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/BuildRecord.swift @@ -9,7 +9,11 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + +import class TSCBasic.DiagnosticsEngine +import struct TSCBasic.AbsolutePath +import struct TSCBasic.Diagnostic + @_implementationOnly import Yams /// Holds the info about inputs needed to plan incremenal compilation diff --git a/Sources/SwiftDriver/IncrementalCompilation/BuildRecordInfo.swift b/Sources/SwiftDriver/IncrementalCompilation/BuildRecordInfo.swift index 57a3074cd..d192d4482 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/BuildRecordInfo.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/BuildRecordInfo.swift @@ -10,7 +10,13 @@ // //===----------------------------------------------------------------------===// -import TSCBasic +import class TSCBasic.DiagnosticsEngine +import protocol TSCBasic.FileSystem +import struct TSCBasic.AbsolutePath +import struct TSCBasic.ByteString +import struct TSCBasic.ProcessResult +import struct TSCBasic.SHA256 + import SwiftOptions import class Dispatch.DispatchQueue diff --git a/Sources/SwiftDriver/IncrementalCompilation/DependencyGraphDotFileWriter.swift b/Sources/SwiftDriver/IncrementalCompilation/DependencyGraphDotFileWriter.swift index c512c3a53..3289a1821 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/DependencyGraphDotFileWriter.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/DependencyGraphDotFileWriter.swift @@ -9,7 +9,9 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + +import TSCBasic // <<< +import protocol TSCBasic.WritableByteStream // MARK: - Asking to write dot files / interface public struct DependencyGraphDotFileWriter { diff --git a/Sources/SwiftDriver/IncrementalCompilation/DependencyKey.swift b/Sources/SwiftDriver/IncrementalCompilation/DependencyKey.swift index db8aa7a64..6a924150a 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/DependencyKey.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/DependencyKey.swift @@ -9,7 +9,7 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + import Dispatch /// A filename from another module diff --git a/Sources/SwiftDriver/IncrementalCompilation/FirstWaveComputer.swift b/Sources/SwiftDriver/IncrementalCompilation/FirstWaveComputer.swift index 714247bb3..016c06bd9 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/FirstWaveComputer.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/FirstWaveComputer.swift @@ -10,7 +10,8 @@ // //===----------------------------------------------------------------------===// -import TSCBasic +import protocol TSCBasic.FileSystem + import class Dispatch.DispatchQueue extension IncrementalCompilationState { diff --git a/Sources/SwiftDriver/IncrementalCompilation/IncrementalCompilationProtectedState.swift b/Sources/SwiftDriver/IncrementalCompilation/IncrementalCompilationProtectedState.swift index a445bc86b..d8691e2a7 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/IncrementalCompilationProtectedState.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/IncrementalCompilationProtectedState.swift @@ -11,9 +11,9 @@ //===----------------------------------------------------------------------===// import Dispatch -import TSCBasic import SwiftOptions +import protocol TSCBasic.FileSystem import struct TSCUtility.Version extension IncrementalCompilationState { diff --git a/Sources/SwiftDriver/IncrementalCompilation/IncrementalCompilationState+Extensions.swift b/Sources/SwiftDriver/IncrementalCompilation/IncrementalCompilationState+Extensions.swift index c741f316d..f01cfa15f 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/IncrementalCompilationState+Extensions.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/IncrementalCompilationState+Extensions.swift @@ -9,10 +9,15 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + import SwiftOptions import protocol Foundation.LocalizedError +import class TSCBasic.DiagnosticsEngine +import protocol TSCBasic.FileSystem +import struct TSCBasic.Diagnostic +import struct TSCBasic.ProcessResult + /// In a separate file to ensure that ``IncrementalCompilationState/protectedState`` /// can only be accessed via ``IncrementalCompilationState/blockingConcurrentMutation(_:)`` and /// ``IncrementalCompilationState/blockingConcurrentAccessOrMutation(_:)``. diff --git a/Sources/SwiftDriver/IncrementalCompilation/IncrementalCompilationState.swift b/Sources/SwiftDriver/IncrementalCompilation/IncrementalCompilationState.swift index 00bd3d49e..1e4dd5657 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/IncrementalCompilationState.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/IncrementalCompilationState.swift @@ -11,7 +11,6 @@ //===----------------------------------------------------------------------===// import Dispatch -import TSCBasic import SwiftOptions /// An instance of `IncrementalCompilationState` encapsulates the data necessary diff --git a/Sources/SwiftDriver/IncrementalCompilation/IncrementalDependencyAndInputSetup.swift b/Sources/SwiftDriver/IncrementalCompilation/IncrementalDependencyAndInputSetup.swift index 10784276c..83791825b 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/IncrementalDependencyAndInputSetup.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/IncrementalDependencyAndInputSetup.swift @@ -10,10 +10,12 @@ // //===----------------------------------------------------------------------===// -import TSCBasic import SwiftOptions import class Dispatch.DispatchQueue +import class TSCBasic.DiagnosticsEngine +import protocol TSCBasic.FileSystem + // Initial incremental state computation extension IncrementalCompilationState { static func computeIncrementalStateForPlanning(driver: inout Driver) diff --git a/Sources/SwiftDriver/IncrementalCompilation/InputInfo.swift b/Sources/SwiftDriver/IncrementalCompilation/InputInfo.swift index 25448f13c..43b0c6511 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/InputInfo.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/InputInfo.swift @@ -10,7 +10,7 @@ // //===----------------------------------------------------------------------===// -import TSCBasic +import struct TSCBasic.ProcessResult /// Contains information about the current status of an input to the incremental /// build. diff --git a/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraph.swift b/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraph.swift index 4e71beb42..25894c7cd 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraph.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraph.swift @@ -10,9 +10,10 @@ // //===----------------------------------------------------------------------===// -import TSCBasic import SwiftOptions +import protocol TSCBasic.FileSystem +import struct TSCBasic.ByteString import enum TSCUtility.BitcodeElement import enum TSCUtility.Bitstream import class TSCUtility.BitstreamWriter diff --git a/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraphParts/DependencySource.swift b/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraphParts/DependencySource.swift index 2764958c1..66c30ebd2 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraphParts/DependencySource.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraphParts/DependencySource.swift @@ -9,7 +9,8 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + +import class TSCBasic.DiagnosticsEngine // MARK: - DependencySource /// Points to the source of dependencies, i.e. the file read to obtain the information. diff --git a/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraphParts/Integrator.swift b/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraphParts/Integrator.swift index 58fedc9ae..dd46bf68d 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraphParts/Integrator.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraphParts/Integrator.swift @@ -10,8 +10,6 @@ // //===----------------------------------------------------------------------===// -import TSCBasic - extension ModuleDependencyGraph { // MARK: Integrator - state & creation diff --git a/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraphParts/Node.swift b/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraphParts/Node.swift index fb8f7be48..6ca422f0c 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraphParts/Node.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraphParts/Node.swift @@ -9,7 +9,6 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic // MARK: - ModuleDependencyGraph.Node extension ModuleDependencyGraph { diff --git a/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraphParts/Tracer.swift b/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraphParts/Tracer.swift index e54224d2b..3cb9de833 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraphParts/Tracer.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/ModuleDependencyGraphParts/Tracer.swift @@ -9,7 +9,8 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + +import class TSCBasic.DiagnosticsEngine extension ModuleDependencyGraph { diff --git a/Sources/SwiftDriver/IncrementalCompilation/SourceFileDependencyGraph.swift b/Sources/SwiftDriver/IncrementalCompilation/SourceFileDependencyGraph.swift index 40c0c1eeb..cc7eae39a 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/SourceFileDependencyGraph.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/SourceFileDependencyGraph.swift @@ -9,8 +9,9 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic +import protocol TSCBasic.FileSystem +import struct TSCBasic.ByteString import class TSCUtility.BitstreamWriter import enum TSCUtility.BitcodeElement import enum TSCUtility.Bitstream diff --git a/Sources/SwiftDriver/IncrementalCompilation/SwiftSourceFile.swift b/Sources/SwiftDriver/IncrementalCompilation/SwiftSourceFile.swift index 9fa7afe4e..c502a87b6 100644 --- a/Sources/SwiftDriver/IncrementalCompilation/SwiftSourceFile.swift +++ b/Sources/SwiftDriver/IncrementalCompilation/SwiftSourceFile.swift @@ -10,8 +10,6 @@ // //===----------------------------------------------------------------------===// -import TSCBasic - /// Because the incremental compilation system treats files containing Swift source code specially, /// it is helpful to statically distinguish them wherever an input must be swift source code. public struct SwiftSourceFile: Hashable { diff --git a/Sources/SwiftDriver/Jobs/APIDigesterJobs.swift b/Sources/SwiftDriver/Jobs/APIDigesterJobs.swift index 84d8299e2..3d8a60f1c 100644 --- a/Sources/SwiftDriver/Jobs/APIDigesterJobs.swift +++ b/Sources/SwiftDriver/Jobs/APIDigesterJobs.swift @@ -10,8 +10,6 @@ // //===----------------------------------------------------------------------===// -import TSCBasic - enum DigesterMode: String { case api, abi diff --git a/Sources/SwiftDriver/Jobs/AutolinkExtractJob.swift b/Sources/SwiftDriver/Jobs/AutolinkExtractJob.swift index f1553eb28..f48b2ca3c 100644 --- a/Sources/SwiftDriver/Jobs/AutolinkExtractJob.swift +++ b/Sources/SwiftDriver/Jobs/AutolinkExtractJob.swift @@ -9,7 +9,8 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + +import struct TSCBasic.RelativePath // On ELF/WASM platforms there's no built in autolinking mechanism, so we // pull the info we need from the .o files directly and pass them as an diff --git a/Sources/SwiftDriver/Jobs/CommandLineArguments.swift b/Sources/SwiftDriver/Jobs/CommandLineArguments.swift index 04b06a26c..a4bd1204b 100644 --- a/Sources/SwiftDriver/Jobs/CommandLineArguments.swift +++ b/Sources/SwiftDriver/Jobs/CommandLineArguments.swift @@ -9,9 +9,11 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + import SwiftOptions +import struct TSCBasic.AbsolutePath + /// Utilities for manipulating a list of command line arguments, including /// constructing one from a set of ParsedOptions. extension Array where Element == Job.ArgTemplate { diff --git a/Sources/SwiftDriver/Jobs/CompileJob.swift b/Sources/SwiftDriver/Jobs/CompileJob.swift index b5555e76b..b443d986f 100644 --- a/Sources/SwiftDriver/Jobs/CompileJob.swift +++ b/Sources/SwiftDriver/Jobs/CompileJob.swift @@ -9,9 +9,11 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + import SwiftOptions +import struct TSCBasic.RelativePath + extension Driver { /// Add the appropriate compile mode option to the command line for a compile job. mutating func addCompileModeOption(outputType: FileType?, commandLine: inout [Job.ArgTemplate]) { diff --git a/Sources/SwiftDriver/Jobs/DarwinToolchain+LinkerSupport.swift b/Sources/SwiftDriver/Jobs/DarwinToolchain+LinkerSupport.swift index 9fb4f0cff..664e75fd3 100644 --- a/Sources/SwiftDriver/Jobs/DarwinToolchain+LinkerSupport.swift +++ b/Sources/SwiftDriver/Jobs/DarwinToolchain+LinkerSupport.swift @@ -9,9 +9,11 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + import SwiftOptions +import struct TSCBasic.AbsolutePath +import struct TSCBasic.RelativePath import struct TSCUtility.Version extension DarwinToolchain { diff --git a/Sources/SwiftDriver/Jobs/EmitSupportedFeaturesJob.swift b/Sources/SwiftDriver/Jobs/EmitSupportedFeaturesJob.swift index b6b64eef8..853283aa6 100644 --- a/Sources/SwiftDriver/Jobs/EmitSupportedFeaturesJob.swift +++ b/Sources/SwiftDriver/Jobs/EmitSupportedFeaturesJob.swift @@ -10,11 +10,15 @@ // //===----------------------------------------------------------------------===//// -import TSCBasic import SwiftOptions import struct Foundation.Data import class Foundation.JSONDecoder +import class TSCBasic.DiagnosticsEngine +import protocol TSCBasic.FileSystem +import struct TSCBasic.RelativePath +import var TSCBasic.localFileSystem + /// Describes information about the compiler's supported arguments and features @_spi(Testing) public struct SupportedCompilerFeatures: Codable { var SupportedArguments: [String] diff --git a/Sources/SwiftDriver/Jobs/FrontendJobHelpers.swift b/Sources/SwiftDriver/Jobs/FrontendJobHelpers.swift index 79e5411ea..3ab85a988 100644 --- a/Sources/SwiftDriver/Jobs/FrontendJobHelpers.swift +++ b/Sources/SwiftDriver/Jobs/FrontendJobHelpers.swift @@ -9,8 +9,11 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic +import class TSCBasic.LocalFileOutputByteStream +import class TSCBasic.TerminalController +import struct TSCBasic.RelativePath +import var TSCBasic.stderrStream import enum TSCUtility.Diagnostics /// Whether we should produce color diagnostics by default. diff --git a/Sources/SwiftDriver/Jobs/GeneratePCHJob.swift b/Sources/SwiftDriver/Jobs/GeneratePCHJob.swift index 5637c3760..9b5cd0f56 100644 --- a/Sources/SwiftDriver/Jobs/GeneratePCHJob.swift +++ b/Sources/SwiftDriver/Jobs/GeneratePCHJob.swift @@ -10,7 +10,7 @@ // //===----------------------------------------------------------------------===// -import TSCBasic +import struct TSCBasic.RelativePath extension Driver { mutating func generatePCHJob(input: TypedVirtualPath, output: TypedVirtualPath) throws -> Job { diff --git a/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift b/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift index eed877761..ba3bb6fa5 100644 --- a/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift +++ b/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift @@ -9,9 +9,12 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + import SwiftOptions +import func TSCBasic.lookupExecutablePath +import struct TSCBasic.AbsolutePath + extension GenericUnixToolchain { private func defaultLinker(for targetTriple: Triple) -> String? { if targetTriple.os == .openbsd || targetTriple.environment == .android { diff --git a/Sources/SwiftDriver/Jobs/Job.swift b/Sources/SwiftDriver/Jobs/Job.swift index ac6a277b6..3a6d4a145 100644 --- a/Sources/SwiftDriver/Jobs/Job.swift +++ b/Sources/SwiftDriver/Jobs/Job.swift @@ -10,7 +10,8 @@ // //===----------------------------------------------------------------------===// -import TSCBasic +import protocol TSCBasic.DiagnosticData +import protocol TSCBasic.FileSystem /// A job represents an individual subprocess that should be invoked during compilation. public struct Job: Codable, Equatable, Hashable { diff --git a/Sources/SwiftDriver/Jobs/LinkJob.swift b/Sources/SwiftDriver/Jobs/LinkJob.swift index 257c642c7..9974b9ba5 100644 --- a/Sources/SwiftDriver/Jobs/LinkJob.swift +++ b/Sources/SwiftDriver/Jobs/LinkJob.swift @@ -9,7 +9,9 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + +import struct TSCBasic.AbsolutePath +import struct TSCBasic.RelativePath extension Driver { internal var relativeOutputFileForImage: RelativePath { diff --git a/Sources/SwiftDriver/Jobs/MergeModuleJob.swift b/Sources/SwiftDriver/Jobs/MergeModuleJob.swift index 4f1cfc0ae..b1a100d90 100644 --- a/Sources/SwiftDriver/Jobs/MergeModuleJob.swift +++ b/Sources/SwiftDriver/Jobs/MergeModuleJob.swift @@ -10,7 +10,7 @@ // //===----------------------------------------------------------------------===// -import TSCBasic +import struct TSCBasic.RelativePath extension Driver { mutating func mergeModuleJob(inputs providedInputs: [TypedVirtualPath], diff --git a/Sources/SwiftDriver/Jobs/Planning.swift b/Sources/SwiftDriver/Jobs/Planning.swift index 55bee49d3..badea92cd 100644 --- a/Sources/SwiftDriver/Jobs/Planning.swift +++ b/Sources/SwiftDriver/Jobs/Planning.swift @@ -10,10 +10,16 @@ // //===----------------------------------------------------------------------===// -import TSCBasic import SwiftOptions import class Foundation.JSONDecoder +import TSCBasic // <<< +import protocol TSCBasic.DiagnosticData +import struct TSCBasic.AbsolutePath +import struct TSCBasic.Diagnostic +import var TSCBasic.localFileSystem +import var TSCBasic.stdoutStream + public enum PlanningError: Error, DiagnosticData { case replReceivedInput case emitPCMWrongInputFiles diff --git a/Sources/SwiftDriver/Jobs/PrebuiltModulesJob.swift b/Sources/SwiftDriver/Jobs/PrebuiltModulesJob.swift index d96009039..b91969919 100644 --- a/Sources/SwiftDriver/Jobs/PrebuiltModulesJob.swift +++ b/Sources/SwiftDriver/Jobs/PrebuiltModulesJob.swift @@ -9,11 +9,20 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic import SwiftOptions import class Foundation.JSONEncoder import class Foundation.JSONSerialization +import TSCBasic // <<< +import class TSCBasic.DiagnosticsEngine +import protocol TSCBasic.WritableByteStream +import struct TSCBasic.AbsolutePath +import struct TSCBasic.ByteString +import struct TSCBasic.ProcessResult +import struct TSCBasic.RelativePath +import var TSCBasic.localFileSystem +import var TSCBasic.stderrStream + func getModuleFlags(_ path: VirtualPath, _ ignorable: Bool) throws -> [String] { let data = try localFileSystem.readFileContents(path).cString let myStrings = data.components(separatedBy: .newlines) diff --git a/Sources/SwiftDriver/Jobs/Toolchain+InterpreterSupport.swift b/Sources/SwiftDriver/Jobs/Toolchain+InterpreterSupport.swift index 71ecce006..ede3ebc5e 100644 --- a/Sources/SwiftDriver/Jobs/Toolchain+InterpreterSupport.swift +++ b/Sources/SwiftDriver/Jobs/Toolchain+InterpreterSupport.swift @@ -9,8 +9,7 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -// -import TSCBasic + import SwiftOptions extension Toolchain { diff --git a/Sources/SwiftDriver/Jobs/Toolchain+LinkerSupport.swift b/Sources/SwiftDriver/Jobs/Toolchain+LinkerSupport.swift index b83bcb331..aac2ae6c6 100644 --- a/Sources/SwiftDriver/Jobs/Toolchain+LinkerSupport.swift +++ b/Sources/SwiftDriver/Jobs/Toolchain+LinkerSupport.swift @@ -9,9 +9,11 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + import SwiftOptions +import protocol TSCBasic.FileSystem + extension Toolchain { // MARK: - Path computation diff --git a/Sources/SwiftDriver/Jobs/WebAssemblyToolchain+LinkerSupport.swift b/Sources/SwiftDriver/Jobs/WebAssemblyToolchain+LinkerSupport.swift index 1f9f78812..9d0a085d6 100644 --- a/Sources/SwiftDriver/Jobs/WebAssemblyToolchain+LinkerSupport.swift +++ b/Sources/SwiftDriver/Jobs/WebAssemblyToolchain+LinkerSupport.swift @@ -9,9 +9,13 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + import SwiftOptions +import func TSCBasic.lookupExecutablePath +import protocol TSCBasic.FileSystem +import struct TSCBasic.AbsolutePath + extension WebAssemblyToolchain { public func addPlatformSpecificLinkerArgs( to commandLine: inout [Job.ArgTemplate], diff --git a/Sources/SwiftDriver/Jobs/WindowsToolchain+LinkerSupport.swift b/Sources/SwiftDriver/Jobs/WindowsToolchain+LinkerSupport.swift index d82fa8394..35043e003 100644 --- a/Sources/SwiftDriver/Jobs/WindowsToolchain+LinkerSupport.swift +++ b/Sources/SwiftDriver/Jobs/WindowsToolchain+LinkerSupport.swift @@ -10,9 +10,11 @@ // //===----------------------------------------------------------------------===// -import TSCBasic import SwiftOptions +import func TSCBasic.lookupExecutablePath +import struct TSCBasic.AbsolutePath + private func architecture(for triple: Triple) -> String { // The concept of a "major" arch name only applies to Linux triples guard triple.os == .linux else { return triple.archName } diff --git a/Sources/SwiftDriver/SwiftScan/SwiftScan.swift b/Sources/SwiftDriver/SwiftScan/SwiftScan.swift index 72f99a105..fb341cf85 100644 --- a/Sources/SwiftDriver/SwiftScan/SwiftScan.swift +++ b/Sources/SwiftDriver/SwiftScan/SwiftScan.swift @@ -11,11 +11,14 @@ //===----------------------------------------------------------------------===// @_implementationOnly import CSwiftScan -import TSCBasic -import struct TSCUtility.Version + import func Foundation.strdup import func Foundation.free +import protocol TSCBasic.DiagnosticData +import struct TSCBasic.AbsolutePath +import struct TSCUtility.Version + public enum DependencyScanningError: Error, DiagnosticData { case missingRequiredSymbol(String) case dependencyScanFailed diff --git a/Sources/SwiftDriver/Toolchains/DarwinToolchain.swift b/Sources/SwiftDriver/Toolchains/DarwinToolchain.swift index 4e6c2625f..2f505e531 100644 --- a/Sources/SwiftDriver/Toolchains/DarwinToolchain.swift +++ b/Sources/SwiftDriver/Toolchains/DarwinToolchain.swift @@ -9,14 +9,21 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + import SwiftOptions -import struct TSCUtility.Version import struct Foundation.Data import class Foundation.JSONEncoder import class Foundation.JSONDecoder +import protocol TSCBasic.FileSystem +import protocol TSCBasic.DiagnosticData +import class TSCBasic.DiagnosticsEngine +import struct TSCBasic.AbsolutePath +import struct TSCBasic.Diagnostic +import var TSCBasic.localFileSystem +import struct TSCUtility.Version + /// Toolchain for Darwin-based platforms, such as macOS and iOS. /// /// FIXME: This class is not thread-safe. diff --git a/Sources/SwiftDriver/Toolchains/GenericUnixToolchain.swift b/Sources/SwiftDriver/Toolchains/GenericUnixToolchain.swift index 05cc54541..7abe9d771 100644 --- a/Sources/SwiftDriver/Toolchains/GenericUnixToolchain.swift +++ b/Sources/SwiftDriver/Toolchains/GenericUnixToolchain.swift @@ -9,7 +9,10 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + +import protocol TSCBasic.FileSystem +import struct TSCBasic.AbsolutePath +import var TSCBasic.localFileSystem /// Toolchain for Unix-like systems. public final class GenericUnixToolchain: Toolchain { diff --git a/Sources/SwiftDriver/Toolchains/Toolchain.swift b/Sources/SwiftDriver/Toolchains/Toolchain.swift index 823054ff1..b91a4d6fe 100644 --- a/Sources/SwiftDriver/Toolchains/Toolchain.swift +++ b/Sources/SwiftDriver/Toolchains/Toolchain.swift @@ -10,10 +10,15 @@ // //===----------------------------------------------------------------------===// -import TSCBasic import SwiftOptions import class Foundation.Bundle +import func TSCBasic.getEnvSearchPaths +import func TSCBasic.lookupExecutablePath +import class TSCBasic.DiagnosticsEngine +import protocol TSCBasic.FileSystem +import struct TSCBasic.AbsolutePath + public enum Tool: Hashable { case swiftCompiler case staticLinker(LTOKind?) diff --git a/Sources/SwiftDriver/Toolchains/WebAssemblyToolchain.swift b/Sources/SwiftDriver/Toolchains/WebAssemblyToolchain.swift index 93f1fe2cb..b9c634bf9 100644 --- a/Sources/SwiftDriver/Toolchains/WebAssemblyToolchain.swift +++ b/Sources/SwiftDriver/Toolchains/WebAssemblyToolchain.swift @@ -9,9 +9,14 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + import SwiftOptions +import struct TSCBasic.AbsolutePath +import protocol TSCBasic.DiagnosticData +import protocol TSCBasic.FileSystem +import var TSCBasic.localFileSystem + /// Toolchain for WebAssembly-based systems. public final class WebAssemblyToolchain: Toolchain { @_spi(Testing) public enum Error: Swift.Error, DiagnosticData { diff --git a/Sources/SwiftDriver/Toolchains/WindowsToolchain.swift b/Sources/SwiftDriver/Toolchains/WindowsToolchain.swift index 89cc5a261..387c97f10 100644 --- a/Sources/SwiftDriver/Toolchains/WindowsToolchain.swift +++ b/Sources/SwiftDriver/Toolchains/WindowsToolchain.swift @@ -10,9 +10,14 @@ // //===----------------------------------------------------------------------===// -import TSCBasic import SwiftOptions +import class TSCBasic.DiagnosticsEngine +import protocol TSCBasic.DiagnosticData +import protocol TSCBasic.FileSystem +import struct TSCBasic.AbsolutePath +import var TSCBasic.localFileSystem + extension WindowsToolchain { public enum ToolchainValidationError: Error, DiagnosticData { case unsupportedSanitizer(Sanitizer) diff --git a/Sources/SwiftDriver/Utilities/DOTJobGraphSerializer.swift b/Sources/SwiftDriver/Utilities/DOTJobGraphSerializer.swift index be55a603b..17b7390b0 100644 --- a/Sources/SwiftDriver/Utilities/DOTJobGraphSerializer.swift +++ b/Sources/SwiftDriver/Utilities/DOTJobGraphSerializer.swift @@ -9,7 +9,6 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic /// Serializes the job graph to a .dot file @_spi(Testing) public struct DOTJobGraphSerializer { diff --git a/Sources/SwiftDriver/Utilities/Diagnostics.swift b/Sources/SwiftDriver/Utilities/Diagnostics.swift index 5b8118b5a..0e25916ae 100644 --- a/Sources/SwiftDriver/Utilities/Diagnostics.swift +++ b/Sources/SwiftDriver/Utilities/Diagnostics.swift @@ -9,9 +9,11 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + import SwiftOptions +import struct TSCBasic.Diagnostic + extension Diagnostic.Message { static var error_static_emit_executable_disallowed: Diagnostic.Message { .error("-static may not be used with -emit-executable") diff --git a/Sources/SwiftDriver/Utilities/RelativePathAdditions.swift b/Sources/SwiftDriver/Utilities/RelativePathAdditions.swift index 41e2104d3..3f366ab90 100644 --- a/Sources/SwiftDriver/Utilities/RelativePathAdditions.swift +++ b/Sources/SwiftDriver/Utilities/RelativePathAdditions.swift @@ -9,7 +9,9 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + +import struct TSCBasic.AbsolutePath +import struct TSCBasic.RelativePath extension RelativePath { /// Retrieve the basename of the relative path without any extensions, diff --git a/Sources/SwiftDriver/Utilities/VirtualPath.swift b/Sources/SwiftDriver/Utilities/VirtualPath.swift index 11e3c9b0b..7744b78b5 100644 --- a/Sources/SwiftDriver/Utilities/VirtualPath.swift +++ b/Sources/SwiftDriver/Utilities/VirtualPath.swift @@ -9,7 +9,7 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + import struct Foundation.Data import struct Foundation.TimeInterval import class Dispatch.DispatchQueue @@ -18,6 +18,16 @@ import class Dispatch.DispatchQueue import Darwin #endif +import enum TSCBasic.SystemError +import func TSCBasic.resolveSymlinks +import protocol TSCBasic.FileSystem +import protocol TSCBasic.WritableByteStream +import struct TSCBasic.AbsolutePath +import struct TSCBasic.ByteString +import struct TSCBasic.FileInfo +import struct TSCBasic.RelativePath +import var TSCBasic.localFileSystem + /// A virtual path. public enum VirtualPath: Hashable { private static var pathCache = PathCache() diff --git a/Sources/SwiftDriverExecution/MultiJobExecutor.swift b/Sources/SwiftDriverExecution/MultiJobExecutor.swift index 203f7e51d..d0672203e 100644 --- a/Sources/SwiftDriverExecution/MultiJobExecutor.swift +++ b/Sources/SwiftDriverExecution/MultiJobExecutor.swift @@ -10,8 +10,6 @@ // //===----------------------------------------------------------------------===// -import TSCBasic -import enum TSCUtility.Diagnostics import SwiftDriver import class Dispatch.DispatchQueue @@ -21,6 +19,15 @@ import var Foundation.EXIT_SUCCESS import var Foundation.EXIT_FAILURE import var Foundation.SIGINT +import class TSCBasic.DiagnosticsEngine +import class TSCBasic.Process +import class TSCBasic.ProcessSet +import protocol TSCBasic.DiagnosticData +import protocol TSCBasic.FileSystem +import struct TSCBasic.Diagnostic +import struct TSCBasic.ProcessResult +import enum TSCUtility.Diagnostics + // We either import the llbuildSwift shared library or the llbuild framework. #if canImport(llbuildSwift) @_implementationOnly import llbuildSwift diff --git a/Sources/SwiftDriverExecution/SwiftDriverExecutor.swift b/Sources/SwiftDriverExecution/SwiftDriverExecutor.swift index 958aef6b1..bb9688f93 100644 --- a/Sources/SwiftDriverExecution/SwiftDriverExecutor.swift +++ b/Sources/SwiftDriverExecution/SwiftDriverExecutor.swift @@ -11,9 +11,16 @@ //===----------------------------------------------------------------------===// import SwiftDriver -import TSCBasic import class Foundation.FileHandle +import class TSCBasic.DiagnosticsEngine +import class TSCBasic.Process +import class TSCBasic.ProcessSet +import enum TSCBasic.ProcessEnv +import func TSCBasic.exec +import protocol TSCBasic.FileSystem +import struct TSCBasic.ProcessResult + public final class SwiftDriverExecutor: DriverExecutor { let diagnosticsEngine: DiagnosticsEngine let processSet: ProcessSet diff --git a/Sources/SwiftDriverExecution/llbuild.swift b/Sources/SwiftDriverExecution/llbuild.swift index 4ed68f9cf..a1280c58b 100644 --- a/Sources/SwiftDriverExecution/llbuild.swift +++ b/Sources/SwiftDriverExecution/llbuild.swift @@ -13,11 +13,12 @@ // FIXME: This is slightly modified from the SwiftPM version, // consider moving this to llbuild. -import TSCBasic import struct Foundation.Data import class Foundation.JSONEncoder import class Foundation.JSONDecoder +import protocol TSCBasic.FileSystem + // We either import the llbuildSwift shared library or the llbuild framework. #if canImport(llbuildSwift) @_implementationOnly import llbuildSwift diff --git a/Sources/SwiftOptions/OptionParsing.swift b/Sources/SwiftOptions/OptionParsing.swift index 92a193b70..229990589 100644 --- a/Sources/SwiftOptions/OptionParsing.swift +++ b/Sources/SwiftOptions/OptionParsing.swift @@ -9,7 +9,8 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -import TSCBasic + +import protocol TSCBasic.DiagnosticData public enum OptionParseError : Error, Equatable, DiagnosticData { case unknownOption(index: Int, argument: String) diff --git a/Sources/swift-build-sdk-interfaces/main.swift b/Sources/swift-build-sdk-interfaces/main.swift index 8c11e315e..196103432 100644 --- a/Sources/swift-build-sdk-interfaces/main.swift +++ b/Sources/swift-build-sdk-interfaces/main.swift @@ -18,7 +18,15 @@ import Darwin #else import Glibc #endif -import TSCBasic + +import TSCBasic // <<< +import class TSCBasic.DiagnosticsEngine +import class TSCBasic.ProcessSet +import enum TSCBasic.ProcessEnv +import func TSCBasic.withTemporaryFile +import struct TSCBasic.AbsolutePath +import var TSCBasic.localFileSystem +import var TSCBasic.stderrStream let diagnosticsEngine = DiagnosticsEngine(handlers: [Driver.stderrDiagnosticsHandler]) diff --git a/Sources/swift-driver/main.swift b/Sources/swift-driver/main.swift index c3567378d..8dca5bc5f 100644 --- a/Sources/swift-driver/main.swift +++ b/Sources/swift-driver/main.swift @@ -18,7 +18,6 @@ import Darwin #else import Glibc #endif -import TSCBasic import Dispatch @@ -26,6 +25,13 @@ import Dispatch import WinSDK #endif +import enum TSCBasic.ProcessEnv +import func TSCBasic.exec +import class TSCBasic.DiagnosticsEngine +import class TSCBasic.Process +import class TSCBasic.ProcessSet +import protocol TSCBasic.DiagnosticData +import var TSCBasic.localFileSystem import enum TSCUtility.Diagnostics let interruptSignalSource = DispatchSource.makeSignalSource(signal: SIGINT) diff --git a/Sources/swift-help/main.swift b/Sources/swift-help/main.swift index 6b0378896..2c8c32e59 100644 --- a/Sources/swift-help/main.swift +++ b/Sources/swift-help/main.swift @@ -10,9 +10,13 @@ // //===----------------------------------------------------------------------===// import SwiftOptions -import TSCBasic import ArgumentParser +import enum TSCBasic.ProcessEnv +import func TSCBasic.exec +import class TSCBasic.Process +import var TSCBasic.localFileSystem + enum HelpTopic: ExpressibleByArgument, CustomStringConvertible { case driver(DriverKind) case subcommand(Subcommand)