From f8e7a6c16373be0deab938aabb38079f5bfec066 Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Mon, 5 May 2025 20:10:41 -0400 Subject: [PATCH 01/15] Generate command models from argument parser JSON files representing some of the commands --- Package.swift | 10 + Sources/LinuxPlatform/Linux.swift | 2 +- Sources/MacOSPlatform/MacOS.swift | 2 +- Sources/SwiftlyCore/Commands.swift | 302 +----------- Sources/SwiftlyCore/CommandsNew.swift | 294 +++++++++++ Sources/SwiftlyCore/ModeledCommandLine.swift | 2 + Sources/SwiftlyCore/dscl-ext.json | 8 + Sources/SwiftlyCore/dscl.json | 52 ++ Sources/SwiftlyCore/getent.json | 24 + Sources/SwiftlyCore/lipo-ext.json | 13 + Sources/SwiftlyCore/lipo.json | 45 ++ Sources/SwiftlyCore/pkgbuild-ext.json | 16 + Sources/SwiftlyCore/pkgbuild.json | 102 ++++ Sources/SwiftlyCore/sha256sum-ext.json | 8 + Sources/SwiftlyCore/sha256sum.json | 44 ++ Tests/SwiftlyTests/CommandLineTests.swift | 24 +- Tests/SwiftlyTests/SwiftlyTests.swift | 12 +- .../BuildSwiftlyRelease.swift | 20 +- .../GenerateCommandModels.swift | 460 ++++++++++++++++++ 19 files changed, 1113 insertions(+), 327 deletions(-) create mode 100644 Sources/SwiftlyCore/CommandsNew.swift create mode 100644 Sources/SwiftlyCore/dscl-ext.json create mode 100644 Sources/SwiftlyCore/dscl.json create mode 100644 Sources/SwiftlyCore/getent.json create mode 100644 Sources/SwiftlyCore/lipo-ext.json create mode 100644 Sources/SwiftlyCore/lipo.json create mode 100644 Sources/SwiftlyCore/pkgbuild-ext.json create mode 100644 Sources/SwiftlyCore/pkgbuild.json create mode 100644 Sources/SwiftlyCore/sha256sum-ext.json create mode 100644 Sources/SwiftlyCore/sha256sum.json create mode 100644 Tools/generate-command-models/GenerateCommandModels.swift diff --git a/Package.swift b/Package.swift index d8896350..4fb96f77 100644 --- a/Package.swift +++ b/Package.swift @@ -114,6 +114,16 @@ let package = Package( ], path: "Tools/generate-docs-reference" ), + .executableTarget( + name: "generate-command-models", + dependencies: [ + .target(name: "SwiftlyCore"), + .target(name: "LinuxPlatform", condition: .when(platforms: [.linux])), + .target(name: "MacOSPlatform", condition: .when(platforms: [.macOS])), + .product(name: "ArgumentParser", package: "swift-argument-parser"), + ], + path: "Tools/generate-command-models" + ), .executableTarget( name: "build-swiftly-release", dependencies: [ diff --git a/Sources/LinuxPlatform/Linux.swift b/Sources/LinuxPlatform/Linux.swift index 6048f59e..3c9c5f7b 100644 --- a/Sources/LinuxPlatform/Linux.swift +++ b/Sources/LinuxPlatform/Linux.swift @@ -603,7 +603,7 @@ public struct Linux: Platform { public func getShell() async throws -> String { let userName = ProcessInfo.processInfo.userName - if let entry = try await sys.getent(database: "passwd", keys: userName).entries(self).first { + if let entry = try await sys.getent(database: "passwd", key: userName).entries(self).first { if let shell = entry.last { return shell } } diff --git a/Sources/MacOSPlatform/MacOS.swift b/Sources/MacOSPlatform/MacOS.swift index dd72af1c..b4bd9b6f 100644 --- a/Sources/MacOSPlatform/MacOS.swift +++ b/Sources/MacOSPlatform/MacOS.swift @@ -191,7 +191,7 @@ public struct MacOS: Platform { } public func getShell() async throws -> String { - for (key, value) in try await sys.dscl(datasource: ".").read(path: fs.home, keys: "UserShell").properties(self) { + for (key, value) in try await sys.dscl(datasource: ".").read(path: fs.home, key: ["UserShell"]).properties(self) { return value } diff --git a/Sources/SwiftlyCore/Commands.swift b/Sources/SwiftlyCore/Commands.swift index b3cb0d98..06d91a56 100644 --- a/Sources/SwiftlyCore/Commands.swift +++ b/Sources/SwiftlyCore/Commands.swift @@ -1,84 +1,9 @@ import Foundation import SystemPackage -public enum SystemCommand {} - // This file contains a set of system commands that's used by Swiftly and its related tests and tooling -extension SystemCommand { - // Directory Service command line utility for macOS - // See dscl(1) for details - public static func dscl(executable: Executable = DsclCommand.defaultExecutable, datasource: String? = nil) -> DsclCommand { - DsclCommand(executable: executable, datasource: datasource) - } - - public struct DsclCommand { - public static var defaultExecutable: Executable { .name("dscl") } - - var executable: Executable - var datasource: String? - - internal init( - executable: Executable, - datasource: String? - ) { - self.executable = executable - self.datasource = datasource - } - - func config() -> Configuration { - var args: [String] = [] - - if let datasource = self.datasource { - args.append(datasource) - } - - return Configuration( - executable: self.executable, - arguments: Arguments(args), - environment: .inherit - ) - } - - public func read(path: FilePath? = nil, keys: [String]) -> ReadCommand { - ReadCommand(dscl: self, path: path, keys: keys) - } - - public func read(path: FilePath? = nil, keys: String...) -> ReadCommand { - self.read(path: path, keys: keys) - } - - public struct ReadCommand { - var dscl: DsclCommand - var path: FilePath? - var keys: [String] - - internal init(dscl: DsclCommand, path: FilePath?, keys: [String]) { - self.dscl = dscl - self.path = path - self.keys = keys - } - - public func config() -> Configuration { - var c = self.dscl.config() - - var args = c.arguments.storage.map(\.description) + ["-read"] - - if let path = self.path { - args.append(path.string) - } - - args.append(contentsOf: self.keys) - - c.arguments = .init(args) - - return c - } - } - } -} - -extension SystemCommand.DsclCommand.ReadCommand: Output { +extension SystemCommand.dsclCommand.readCommand: Output { public func properties(_ p: Platform) async throws -> [(key: String, value: String)] { let output = try await self.output(p) guard let output else { return [] } @@ -93,189 +18,11 @@ extension SystemCommand.DsclCommand.ReadCommand: Output { } } -extension SystemCommand { - // Create or operate on universal files - // See lipo(1) for details - public static func lipo(executable: Executable = LipoCommand.defaultExecutable, inputFiles: FilePath...) -> LipoCommand { - Self.lipo(executable: executable, inputFiles: inputFiles) - } - - // Create or operate on universal files - // See lipo(1) for details - public static func lipo(executable: Executable = LipoCommand.defaultExecutable, inputFiles: [FilePath]) -> LipoCommand { - LipoCommand(executable: executable, inputFiles: inputFiles) - } - - public struct LipoCommand { - public static var defaultExecutable: Executable { .name("lipo") } - - var executable: Executable - var inputFiles: [FilePath] - - internal init(executable: Executable, inputFiles: [FilePath]) { - self.executable = executable - self.inputFiles = inputFiles - } - - func config() -> Configuration { - var args: [String] = [] +extension SystemCommand.lipoCommand.createCommand: Runnable {} - args.append(contentsOf: self.inputFiles.map(\.string)) +extension SystemCommand.pkgbuildCommand: Runnable {} - return Configuration( - executable: self.executable, - arguments: Arguments(args), - environment: .inherit - ) - } - - public func create(output: FilePath) -> CreateCommand { - CreateCommand(self, output: output) - } - - public struct CreateCommand { - var lipo: LipoCommand - var output: FilePath - - init(_ lipo: LipoCommand, output: FilePath) { - self.lipo = lipo - self.output = output - } - - public func config() -> Configuration { - var c = self.lipo.config() - - var args = c.arguments.storage.map(\.description) + ["-create", "-output", "\(self.output)"] - - c.arguments = .init(args) - - return c - } - } - } -} - -extension SystemCommand.LipoCommand.CreateCommand: Runnable {} - -extension SystemCommand { - // Build a macOS Installer component package from on-disk files - // See pkgbuild(1) for more details - public static func pkgbuild(executable: Executable = PkgbuildCommand.defaultExecutable, _ options: PkgbuildCommand.Option..., root: FilePath, packageOutputPath: FilePath) -> PkgbuildCommand { - Self.pkgbuild(executable: executable, options: options, root: root, packageOutputPath: packageOutputPath) - } - - // Build a macOS Installer component package from on-disk files - // See pkgbuild(1) for more details - public static func pkgbuild(executable: Executable = PkgbuildCommand.defaultExecutable, options: [PkgbuildCommand.Option], root: FilePath, packageOutputPath: FilePath) -> PkgbuildCommand { - PkgbuildCommand(executable: executable, options, root: root, packageOutputPath: packageOutputPath) - } - - public struct PkgbuildCommand { - public static var defaultExecutable: Executable { .name("pkgbuild") } - - var executable: Executable - - var options: [Option] - - var root: FilePath - var packageOutputPath: FilePath - - internal init(executable: Executable, _ options: [Option], root: FilePath, packageOutputPath: FilePath) { - self.executable = executable - self.options = options - self.root = root - self.packageOutputPath = packageOutputPath - } - - public enum Option { - case installLocation(FilePath) - case version(String) - case identifier(String) - case sign(String) - - func args() -> [String] { - switch self { - case let .installLocation(installLocation): - return ["--install-location", installLocation.string] - case let .version(version): - return ["--version", version] - case let .identifier(identifier): - return ["--identifier", identifier] - case let .sign(identityName): - return ["--sign", identityName] - } - } - } - - public func config() -> Configuration { - var args: [String] = [] - - for option in self.options { - args.append(contentsOf: option.args()) - } - - args.append(contentsOf: ["--root", "\(self.root)"]) - args.append("\(self.packageOutputPath)") - - return Configuration( - executable: self.executable, - arguments: Arguments(args), - environment: .inherit - ) - } - } -} - -extension SystemCommand.PkgbuildCommand: Runnable {} - -extension SystemCommand { - // get entries from Name Service Switch libraries - // See getent(1) for more details - public static func getent(executable: Executable = GetentCommand.defaultExecutable, database: String, keys: String...) -> GetentCommand { - Self.getent(executable: executable, database: database, keys: keys) - } - - // get entries from Name Service Switch libraries - // See getent(1) for more details - public static func getent(executable: Executable = GetentCommand.defaultExecutable, database: String, keys: [String]) -> GetentCommand { - GetentCommand(executable: executable, database: database, keys: keys) - } - - public struct GetentCommand { - public static var defaultExecutable: Executable { .name("getent") } - - var executable: Executable - - var database: String - - var keys: [String] - - internal init( - executable: Executable, - database: String, - keys: [String] - ) { - self.executable = executable - self.database = database - self.keys = keys - } - - public func config() -> Configuration { - var args: [String] = [] - - args.append(self.database) - args.append(contentsOf: self.keys) - - return Configuration( - executable: self.executable, - arguments: Arguments(args), - environment: .inherit - ) - } - } -} - -extension SystemCommand.GetentCommand: Output { +extension SystemCommand.getentCommand: Output { public func entries(_ platform: Platform) async throws -> [[String]] { let output = try await output(platform) guard let output else { return [] } @@ -1053,46 +800,7 @@ extension SystemCommand { extension SystemCommand.StripCommand: Runnable {} -extension SystemCommand { - // calculate a message-digest fingerprint (checksum) for a file - // See sha256sum(1) for more information. - public static func sha256sum(executable: Executable = Sha256SumCommand.defaultExecutable, files: FilePath...) -> Sha256SumCommand { - self.sha256sum(executable: executable, files: files) - } - - // calculate a message-digest fingerprint (checksum) for a file - // See sha256sum(1) for more information. - public static func sha256sum(executable: Executable, files: [FilePath]) -> Sha256SumCommand { - Sha256SumCommand(executable: executable, files: files) - } - - public struct Sha256SumCommand { - public static var defaultExecutable: Executable { .name("sha256sum") } - - public var executable: Executable - - public var files: [FilePath] - - public init(executable: Executable, files: [FilePath]) { - self.executable = executable - self.files = files - } - - public func config() -> Configuration { - var args: [String] = [] - - args.append(contentsOf: self.files.map(\.string)) - - return Configuration( - executable: self.executable, - arguments: Arguments(args), - environment: .inherit - ) - } - } -} - -extension SystemCommand.Sha256SumCommand: Output {} +extension SystemCommand.sha256sumCommand: Output {} extension SystemCommand { // Build a product archive for the macOS Installer or the Mac App Store. diff --git a/Sources/SwiftlyCore/CommandsNew.swift b/Sources/SwiftlyCore/CommandsNew.swift new file mode 100644 index 00000000..9851d578 --- /dev/null +++ b/Sources/SwiftlyCore/CommandsNew.swift @@ -0,0 +1,294 @@ +import SystemPackage + +extension SystemCommand { + // Directory Service command line utility for macOS. See dscl(1) for more information. + public static func dscl(executable: Executable = dsclCommand.defaultExecutable, datasource: String? = nil) -> dsclCommand { + dsclCommand(executable: executable, datasource: datasource) + } + + public struct dsclCommand { + public static var defaultExecutable: Executable { .name("dscl") } + public var executable: Executable + public var datasource: String? + + public init(executable: Executable, datasource: String? = nil) { + self.executable = executable + self.datasource = datasource + } + + public func config() -> Configuration { + var args: [String] = [] + + if let datasource = self.datasource { args += [datasource.description] } + + return Configuration( + executable: self.executable, + arguments: Arguments(args), + environment: .inherit + ) + } + + public func read(path: FilePath? = nil, key: [String]?) -> readCommand { + readCommand(parent: self, path: path, key: key) + } + + public struct readCommand { + public var parent: dsclCommand + public var path: FilePath? + public var key: [String]? + + public init(parent: dsclCommand, path: FilePath? = nil, key: [String]?) { + self.parent = parent + self.path = path + self.key = key + } + + public func config() -> Configuration { + var c = self.parent.config() + + var args = c.arguments.storage.map(\.description) + + args.append("-read") + + if let path = self.path { args += [path.description] } + if let key = self.key { args += key.map(\.description) } + + c.arguments = .init(args) + + return c + } + } + } +} + +extension SystemCommand { + // get entries from Name Service Switch libraries. See getent(1) for more information. + public static func getent(executable: Executable = getentCommand.defaultExecutable, database: String, key: String...) -> getentCommand { + Self.getent(executable: executable, database: database, key: key) + } + + // get entries from Name Service Switch libraries. See getent(1) for more information. + public static func getent(executable: Executable = getentCommand.defaultExecutable, database: String, key: [String]) -> getentCommand { + getentCommand(executable: executable, database: database, key: key) + } + + public struct getentCommand { + public static var defaultExecutable: Executable { .name("getent") } + public var executable: Executable + public var database: String + public var key: [String] + + public init(executable: Executable, database: String, key: [String]) { + self.executable = executable + self.database = database + self.key = key + } + + public func config() -> Configuration { + var args: [String] = [] + + args += [self.database.description] + args += self.key.map(\.description) + + return Configuration( + executable: self.executable, + arguments: Arguments(args), + environment: .inherit + ) + } + } +} + +extension SystemCommand { + // Create or operate on universal files. See lipo(1) for more information. + public static func lipo(executable: Executable = lipoCommand.defaultExecutable, input_file: FilePath...) -> lipoCommand { + Self.lipo(executable: executable, input_file: input_file) + } + + // Create or operate on universal files. See lipo(1) for more information. + public static func lipo(executable: Executable = lipoCommand.defaultExecutable, input_file: [FilePath]) -> lipoCommand { + lipoCommand(executable: executable, input_file: input_file) + } + + public struct lipoCommand { + public static var defaultExecutable: Executable { .name("lipo") } + public var executable: Executable + public var input_file: [FilePath] + + public init(executable: Executable, input_file: [FilePath]) { + self.executable = executable + self.input_file = input_file + } + + public func config() -> Configuration { + var args: [String] = [] + + args += self.input_file.map(\.description) + + return Configuration( + executable: self.executable, + arguments: Arguments(args), + environment: .inherit + ) + } + + public func create(_ options: createCommand.Option...) -> createCommand { + self.create(options) + } + + public func create(_ options: [createCommand.Option]) -> createCommand { + createCommand(parent: self, options) + } + + public struct createCommand { + public var parent: lipoCommand + public var options: [Option] + + public enum Option { + case output(FilePath) + + public func args() -> [String] { + switch self { + case let .output(output): + ["-output", String(describing: output)] + } + } + } + + public init(parent: lipoCommand, _ options: [createCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var args = c.arguments.storage.map(\.description) + + args.append("-create") + + for opt in self.options { + args.append(contentsOf: opt.args()) + } + + c.arguments = .init(args) + + return c + } + } + } +} + +extension SystemCommand { + // Build a macOS Installer component package from on-disk files. See pkgbuild(1) for more information. + public static func pkgbuild(executable: Executable = pkgbuildCommand.defaultExecutable, _ options: pkgbuildCommand.Option..., package_output_path: FilePath) -> pkgbuildCommand { + Self.pkgbuild(executable: executable, options, package_output_path: package_output_path) + } + + // Build a macOS Installer component package from on-disk files. See pkgbuild(1) for more information. + public static func pkgbuild(executable: Executable = pkgbuildCommand.defaultExecutable, _ options: [pkgbuildCommand.Option], package_output_path: FilePath) -> pkgbuildCommand { + pkgbuildCommand(executable: executable, options, package_output_path: package_output_path) + } + + public struct pkgbuildCommand { + public static var defaultExecutable: Executable { .name("pkgbuild") } + public var executable: Executable + public var options: [Option] + public var package_output_path: FilePath + + public enum Option { + case sign(String) + case identifier(String) + case version(String) + case install_location(FilePath) + case root(FilePath) + + public func args() -> [String] { + switch self { + case let .sign(sign): + ["--sign", String(describing: sign)] + case let .identifier(identifier): + ["--identifier", String(describing: identifier)] + case let .version(version): + ["--version", String(describing: version)] + case let .install_location(install_location): + ["--install-location", String(describing: install_location)] + case let .root(root): + ["--root", String(describing: root)] + } + } + } + + public init(executable: Executable, _ options: [pkgbuildCommand.Option], package_output_path: FilePath) { + self.executable = executable + self.options = options + self.package_output_path = package_output_path + } + + public func config() -> Configuration { + var args: [String] = [] + + for opt in self.options { + args.append(contentsOf: opt.args()) + } + args += [self.package_output_path.description] + + return Configuration( + executable: self.executable, + arguments: Arguments(args), + environment: .inherit + ) + } + } +} + +extension SystemCommand { + // calculate a message-digest fingerprint (checksum) for a file. See sha256sum(1) for more information. + public static func sha256sum(executable: Executable = sha256sumCommand.defaultExecutable, _ options: sha256sumCommand.Option..., files: FilePath...) -> sha256sumCommand { + Self.sha256sum(executable: executable, options, files: files) + } + + // calculate a message-digest fingerprint (checksum) for a file. See sha256sum(1) for more information. + public static func sha256sum(executable: Executable = sha256sumCommand.defaultExecutable, _ options: [sha256sumCommand.Option], files: [FilePath]) -> sha256sumCommand { + sha256sumCommand(executable: executable, options, files: files) + } + + public struct sha256sumCommand { + public static var defaultExecutable: Executable { .name("sha256sum") } + public var executable: Executable + public var options: [Option] + public var files: [FilePath] + + public enum Option { + case verbose + + public func args() -> [String] { + switch self { + case .verbose: + ["--verbose"] + } + } + } + + public init(executable: Executable, _ options: [sha256sumCommand.Option], files: [FilePath]) { + self.executable = executable + self.options = options + self.files = files + } + + public func config() -> Configuration { + var args: [String] = [] + + for opt in self.options { + args.append(contentsOf: opt.args()) + } + args += self.files.map(\.description) + + return Configuration( + executable: self.executable, + arguments: Arguments(args), + environment: .inherit + ) + } + } +} diff --git a/Sources/SwiftlyCore/ModeledCommandLine.swift b/Sources/SwiftlyCore/ModeledCommandLine.swift index 94c07622..c291f13b 100644 --- a/Sources/SwiftlyCore/ModeledCommandLine.swift +++ b/Sources/SwiftlyCore/ModeledCommandLine.swift @@ -212,3 +212,5 @@ extension Output { return try await p.runProgramOutput(executable, args, env: env) } } + +public enum SystemCommand {} diff --git a/Sources/SwiftlyCore/dscl-ext.json b/Sources/SwiftlyCore/dscl-ext.json new file mode 100644 index 00000000..bedf5027 --- /dev/null +++ b/Sources/SwiftlyCore/dscl-ext.json @@ -0,0 +1,8 @@ +{ + "arguments": [ + { + "path": "-read.path", + "type": "file" + } + ] +} diff --git a/Sources/SwiftlyCore/dscl.json b/Sources/SwiftlyCore/dscl.json new file mode 100644 index 00000000..5277e0d1 --- /dev/null +++ b/Sources/SwiftlyCore/dscl.json @@ -0,0 +1,52 @@ +{ + "serializationVersion": 0, + "command": { + "commandName": "dscl", + "abstract": "Directory Service command line utility for macOS. See dscl(1) for more information.", + "shouldDisplay": true, + "arguments": [ + { + "names": [ + { + "kind": "long", + "name": "datasource" + } + ], + "preferredName": { + "kind": "long", + "name": "datasource" + }, + "valueName": "datasource", + "isOptional": true, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true + } + ], + "subcommands": [ + { + "commandName": "-read", + "superCommands": [ + "dscl" + ], + "shouldDisplay": true, + "arguments": [ + { + "valueName": "path", + "shouldDisplay": true, + "kind": "positional", + "isOptional": true, + "isRepeating": false + }, + { + "valueName": "key", + "shouldDisplay": true, + "kind": "positional", + "isOptional": true, + "isRepeating": true + } + ] + } + ] + } +} diff --git a/Sources/SwiftlyCore/getent.json b/Sources/SwiftlyCore/getent.json new file mode 100644 index 00000000..d9c68894 --- /dev/null +++ b/Sources/SwiftlyCore/getent.json @@ -0,0 +1,24 @@ +{ + "serializationVersion": 0, + "command": { + "commandName": "getent", + "abstract": "get entries from Name Service Switch libraries. See getent(1) for more information.", + "shouldDisplay": true, + "arguments": [ + { + "valueName": "database", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true + }, + { + "valueName": "key", + "isOptional": false, + "isRepeating": true, + "kind": "positional", + "shouldDisplay": true + } + ] + } +} diff --git a/Sources/SwiftlyCore/lipo-ext.json b/Sources/SwiftlyCore/lipo-ext.json new file mode 100644 index 00000000..ba5c9146 --- /dev/null +++ b/Sources/SwiftlyCore/lipo-ext.json @@ -0,0 +1,13 @@ +{ + "optionsSingleDash": true, + "arguments": [ + { + "path": "input_file", + "type": "file" + }, + { + "path": "-create.output", + "type": "file" + } + ] +} diff --git a/Sources/SwiftlyCore/lipo.json b/Sources/SwiftlyCore/lipo.json new file mode 100644 index 00000000..fb08d511 --- /dev/null +++ b/Sources/SwiftlyCore/lipo.json @@ -0,0 +1,45 @@ +{ + "serializationVersion": 0, + "command": { + "commandName": "lipo", + "abstract": "Create or operate on universal files. See lipo(1) for more information.", + "shouldDisplay": true, + "arguments": [ + { + "valueName": "input_file", + "isOptional": false, + "isRepeating": true, + "kind": "positional", + "shouldDisplay": true + } + ], + "subcommands": [ + { + "commandName": "-create", + "superCommands": [ + "lipo" + ], + "shouldDisplay": true, + "arguments": [ + { + "names": [ + { + "kind": "long", + "name": "output" + } + ], + "preferredName": { + "kind": "long", + "name": "output" + }, + "valueName": "output", + "shouldDisplay": true, + "kind": "option", + "isOptional": false, + "isRepeating": false + } + ] + } + ] + } +} diff --git a/Sources/SwiftlyCore/pkgbuild-ext.json b/Sources/SwiftlyCore/pkgbuild-ext.json new file mode 100644 index 00000000..ad8ab9f3 --- /dev/null +++ b/Sources/SwiftlyCore/pkgbuild-ext.json @@ -0,0 +1,16 @@ +{ + "arguments": [ + { + "path": "package-output-path", + "type": "file" + }, + { + "path": "root", + "type": "file" + }, + { + "path": "install-location", + "type": "file" + } + ] +} diff --git a/Sources/SwiftlyCore/pkgbuild.json b/Sources/SwiftlyCore/pkgbuild.json new file mode 100644 index 00000000..97f2fbe5 --- /dev/null +++ b/Sources/SwiftlyCore/pkgbuild.json @@ -0,0 +1,102 @@ +{ + "serializationVersion": 0, + "command": { + "commandName": "pkgbuild", + "abstract": "Build a macOS Installer component package from on-disk files. See pkgbuild(1) for more information.", + "shouldDisplay": true, + "arguments": [ + { + "names": [ + { + "kind": "long", + "name": "sign" + } + ], + "preferredName": { + "kind": "long", + "name": "sign" + }, + "valueName": "sign", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "shouldDisplay": true + }, + { + "names": [ + { + "kind": "long", + "name": "identifier" + } + ], + "preferredName": { + "kind": "long", + "name": "identifier" + }, + "valueName": "identifier", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "shouldDisplay": true + }, + { + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "valueName": "version", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "shouldDisplay": true + }, + { + "names": [ + { + "kind": "long", + "name": "install-location" + } + ], + "preferredName": { + "kind": "long", + "name": "install-location" + }, + "valueName": "install-location", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "shouldDisplay": true + }, + { + "names": [ + { + "kind": "long", + "name": "root" + } + ], + "preferredName": { + "kind": "long", + "name": "root" + }, + "valueName": "root", + "isOptional": false, + "isRepeating": false, + "kind": "option", + "shouldDisplay": true + }, + { + "valueName": "package-output-path", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true + } + ] + } +} diff --git a/Sources/SwiftlyCore/sha256sum-ext.json b/Sources/SwiftlyCore/sha256sum-ext.json new file mode 100644 index 00000000..f341f556 --- /dev/null +++ b/Sources/SwiftlyCore/sha256sum-ext.json @@ -0,0 +1,8 @@ +{ + "arguments": [ + { + "path": "files", + "type": "file" + } + ] +} diff --git a/Sources/SwiftlyCore/sha256sum.json b/Sources/SwiftlyCore/sha256sum.json new file mode 100644 index 00000000..d515e2b8 --- /dev/null +++ b/Sources/SwiftlyCore/sha256sum.json @@ -0,0 +1,44 @@ +{ + "serializationVersion": 0, + "command": { + "commandName": "sha256sum", + "abstract": "calculate a message-digest fingerprint (checksum) for a file. See sha256sum(1) for more information.", + "shouldDisplay": true, + "arguments": [ + { + "names": [ + { + "kind": "long", + "name": "files" + } + ], + "preferredName": { + "kind": "long", + "name": "files" + }, + "valueName": "files", + "isOptional": false, + "isRepeating": true, + "kind": "positional", + "shouldDisplay": true + }, + { + "names": [ + { + "kind": "long", + "name": "verbose" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "valueName": "verbose", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "shouldDisplay": true + } + ] + } +} diff --git a/Tests/SwiftlyTests/CommandLineTests.swift b/Tests/SwiftlyTests/CommandLineTests.swift index 98c6c93d..d8296cdf 100644 --- a/Tests/SwiftlyTests/CommandLineTests.swift +++ b/Tests/SwiftlyTests/CommandLineTests.swift @@ -9,11 +9,11 @@ public typealias sys = SystemCommand @Suite public struct CommandLineTests { @Test func testDsclModel() { - var config = sys.dscl(datasource: ".").read(path: .init("/Users/swiftly"), keys: "UserShell").config() + var config = sys.dscl(datasource: ".").read(path: .init("/Users/swiftly"), key: ["UserShell"]).config() #expect(config.executable == .name("dscl")) #expect(config.arguments.storage.map(\.description) == [".", "-read", "/Users/swiftly", "UserShell"]) - config = sys.dscl(datasource: ".").read(path: .init("/Users/swiftly"), keys: "UserShell", "Picture").config() + config = sys.dscl(datasource: ".").read(path: .init("/Users/swiftly"), key: ["UserShell", "Picture"]).config() #expect(config.executable == .name("dscl")) #expect(config.arguments.storage.map(\.description) == [".", "-read", "/Users/swiftly", "UserShell", "Picture"]) } @@ -21,45 +21,45 @@ public struct CommandLineTests { @Test( .tags(.medium), .enabled { - try await sys.DsclCommand.defaultExecutable.exists() + try await sys.dsclCommand.defaultExecutable.exists() } ) func testDscl() async throws { - let properties = try await sys.dscl(datasource: ".").read(path: fs.home, keys: "UserShell").properties(Swiftly.currentPlatform) + let properties = try await sys.dscl(datasource: ".").read(path: fs.home, key: ["UserShell"]).properties(Swiftly.currentPlatform) #expect(properties.count == 1) // Only one shell for the current user #expect(properties[0].key == "UserShell") // The one property key should be the one that is requested } @Test func testLipo() { - var config = sys.lipo(inputFiles: "swiftly1", "swiftly2").create(output: "swiftly-universal").config() + var config = sys.lipo(input_file: "swiftly1", "swiftly2").create(.output("swiftly-universal")).config() #expect(config.executable == .name("lipo")) #expect(config.arguments.storage.map(\.description) == ["swiftly1", "swiftly2", "-create", "-output", "swiftly-universal"]) - config = sys.lipo(inputFiles: "swiftly").create(output: "swiftly-universal-with-one-arch").config() + config = sys.lipo(input_file: "swiftly").create(.output("swiftly-universal-with-one-arch")).config() #expect(config.executable == .name("lipo")) #expect(config.arguments.storage.map(\.description) == ["swiftly", "-create", "-output", "swiftly-universal-with-one-arch"]) } @Test func testPkgbuild() { - var config = sys.pkgbuild(root: "mypath", packageOutputPath: "outputDir").config() + var config = sys.pkgbuild(.root("mypath"), package_output_path: "outputDir").config() #expect(String(describing: config) == "pkgbuild --root mypath outputDir") - config = sys.pkgbuild(.version("1234"), root: "somepath", packageOutputPath: "output").config() + config = sys.pkgbuild(.version("1234"), .root("somepath"), package_output_path: "output").config() #expect(String(describing: config) == "pkgbuild --version 1234 --root somepath output") - config = sys.pkgbuild(.installLocation("/usr/local"), .version("1.0.0"), .identifier("org.foo.bar"), .sign("mycert"), root: "someroot", packageOutputPath: "my.pkg").config() + config = sys.pkgbuild(.install_location("/usr/local"), .version("1.0.0"), .identifier("org.foo.bar"), .sign("mycert"), .root("someroot"), package_output_path: "my.pkg").config() #expect(String(describing: config) == "pkgbuild --install-location /usr/local --version 1.0.0 --identifier org.foo.bar --sign mycert --root someroot my.pkg") - config = sys.pkgbuild(.installLocation("/usr/local"), .version("1.0.0"), .identifier("org.foo.bar"), root: "someroot", packageOutputPath: "my.pkg").config() + config = sys.pkgbuild(.install_location("/usr/local"), .version("1.0.0"), .identifier("org.foo.bar"), .root("someroot"), package_output_path: "my.pkg").config() #expect(String(describing: config) == "pkgbuild --install-location /usr/local --version 1.0.0 --identifier org.foo.bar --root someroot my.pkg") } @Test func testGetent() { - var config = sys.getent(database: "passwd", keys: "swiftly").config() + var config = sys.getent(database: "passwd", key: "swiftly").config() #expect(String(describing: config) == "getent passwd swiftly") - config = sys.getent(database: "foo", keys: "abc", "def").config() + config = sys.getent(database: "foo", key: "abc", "def").config() #expect(String(describing: config) == "getent foo abc def") } diff --git a/Tests/SwiftlyTests/SwiftlyTests.swift b/Tests/SwiftlyTests/SwiftlyTests.swift index 8eac1a95..60f78838 100644 --- a/Tests/SwiftlyTests/SwiftlyTests.swift +++ b/Tests/SwiftlyTests/SwiftlyTests.swift @@ -958,11 +958,11 @@ public final actor MockToolchainDownloader: HTTPRequestExecutor { let pkg = tmp / "swiftly.pkg" try await sys.pkgbuild( - .installLocation("swiftly"), + .install_location("swiftly"), .version("\(self.latestSwiftlyVersion)"), .identifier("org.swift.swiftly"), - root: swiftlyDir, - packageOutputPath: pkg + .root(swiftlyDir), + package_output_path: pkg ) .run(Swiftly.currentPlatform) @@ -1005,11 +1005,11 @@ public final actor MockToolchainDownloader: HTTPRequestExecutor { let pkg = tmp / "toolchain.pkg" try await sys.pkgbuild( - .installLocation(FilePath("Library/Developer/Toolchains/\(toolchain.identifier).xctoolchain")), + .install_location(FilePath("Library/Developer/Toolchains/\(toolchain.identifier).xctoolchain")), .version("\(toolchain.name)"), .identifier(pkgInfo.CFBundleIdentifier), - root: toolchainDir, - packageOutputPath: pkg + .root(toolchainDir), + package_output_path: pkg ) .run(Swiftly.currentPlatform) diff --git a/Tools/build-swiftly-release/BuildSwiftlyRelease.swift b/Tools/build-swiftly-release/BuildSwiftlyRelease.swift index 6483444c..4985dbac 100644 --- a/Tools/build-swiftly-release/BuildSwiftlyRelease.swift +++ b/Tools/build-swiftly-release/BuildSwiftlyRelease.swift @@ -283,9 +283,9 @@ struct BuildSwiftlyRelease: AsyncParsableCommand { try? await fs.mkdir(.parents, atPath: swiftlyBinDir) try await sys.lipo( - inputFiles: ".build/x86_64-apple-macosx/release/swiftly", ".build/arm64-apple-macosx/release/swiftly" + input_file: ".build/x86_64-apple-macosx/release/swiftly", ".build/arm64-apple-macosx/release/swiftly" ) - .create(output: swiftlyBinDir / "swiftly") + .create(.output(swiftlyBinDir / "swiftly")) .runEcho(currentPlatform) let swiftlyLicenseDir = fs.cwd / ".build/release/.swiftly/license" @@ -299,20 +299,20 @@ struct BuildSwiftlyRelease: AsyncParsableCommand { if let cert { try await sys.pkgbuild( - .installLocation(".swiftly"), + .install_location(".swiftly"), .version(self.version), .identifier(identifier), .sign(cert), - root: swiftlyBinDir.parent, - packageOutputPath: releaseDir / "swiftly-\(self.version).pkg" + .root(swiftlyBinDir.parent), + package_output_path: releaseDir / "swiftly-\(self.version).pkg" ).runEcho(currentPlatform) } else { try await sys.pkgbuild( - .installLocation(".swiftly"), + .install_location(".swiftly"), .version(self.version), .identifier(identifier), - root: swiftlyBinDir.parent, - packageOutputPath: releaseDir / "swiftly-\(self.version).pkg" + .root(swiftlyBinDir.parent), + package_output_path: releaseDir / "swiftly-\(self.version).pkg" ).runEcho(currentPlatform) } @@ -347,9 +347,9 @@ struct BuildSwiftlyRelease: AsyncParsableCommand { let testArchive = releaseDir / "test-swiftly-macos.tar.gz" try await sys.lipo( - inputFiles: ".build/x86_64-apple-macosx/debug/test-swiftly", ".build/arm64-apple-macosx/debug/test-swiftly" + input_file: ".build/x86_64-apple-macosx/debug/test-swiftly", ".build/arm64-apple-macosx/debug/test-swiftly" ) - .create(output: swiftlyBinDir / "swiftly") + .create(.output(swiftlyBinDir / "swiftly")) .runEcho(currentPlatform) try await sys.tar(.directory(".build/x86_64-apple-macosx/debug")).create(.compressed, .archive(testArchive), files: "test-swiftly").run(currentPlatform) diff --git a/Tools/generate-command-models/GenerateCommandModels.swift b/Tools/generate-command-models/GenerateCommandModels.swift new file mode 100644 index 00000000..21355d0e --- /dev/null +++ b/Tools/generate-command-models/GenerateCommandModels.swift @@ -0,0 +1,460 @@ +import ArgumentParser +import ArgumentParserToolInfo +import Foundation +import SwiftlyCore +import SystemPackage +#if os(macOS) +import MacOSPlatform +let currentPlatform = MacOS() +#elseif os(Linux) +import LinuxPlatform +let currentPlatform = Linux() +#endif + +typealias fs = FileSystem +typealias sys = SystemCommand + +struct CommandExtensions: Codable { + var optionsSingleDash: Bool? + var arguments: [ArgumentExtension]? +} + +struct ArgumentExtension: Codable { + var path: String + var type: String +} + +extension ArgumentInfoV0 { + var asSwiftName: String { + self.valueName!.replacingOccurrences(of: "-", with: "_") + } +} + +@main +struct GenerateCommandModels: AsyncParsableCommand { + static let configuration = CommandConfiguration( + commandName: "generate-command-models", + abstract: "Generate models for commands based on a JSON representation of them based on the swift-argument-parser `--experimental-dump-help`." + ) + + let sha256sumjson = """ + { + "serializationVersion": 0, + "command": { + "commandName": "sha256sum", + "superCommands": ["myparent"], + "shouldDisplay": true, + "arguments": [ + { + "names": [ + { + "kind": "long", + "name": "file" + } + ], + "preferredName": { + "kind": "long", + "name": "file" + }, + "valueName": "file", + "isOptional": false, + "isRepeating": true, + "kind": "positional", + "shouldDisplay": true + }, + { + "names": [ + { + "kind": "long", + "name": "abcde" + } + ], + "preferredName": { + "kind": "long", + "name": "abcde" + }, + "valueName": "abcde", + "isOptional": false, + "isRepeating": true, + "kind": "positional", + "shouldDisplay": true + }, + { + "names": [ + { + "kind": "long", + "name": "verbose" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "valueName": "verbose", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "shouldDisplay": true + }, + { + "names": [ + { + "kind": "long", + "name": "xyz" + } + ], + "preferredName": { + "kind": "long", + "name": "xyz" + }, + "valueName": "xyz", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "shouldDisplay": true + } + ] + } + } + """ + + let sha256sumextension = """ + { + "arguments": [ + { + "path": "file", + "type": "file" + } + ] + } + """ + + func validate() throws {} + + func run() async throws { + let swiftlyCoreDir = fs.cwd / "Sources/SwiftlyCore" + + let cmdHelpFiles = (try await fs.ls(atPath: swiftlyCoreDir)).filter { $0.hasSuffix(".json") && !$0.hasSuffix("-ext.json") }.sorted() + + var allCmds = """ + import SystemPackage + + + """ + + for cmdHelp in cmdHelpFiles { + let data = try Data(contentsOf: swiftlyCoreDir / cmdHelp) + let toolInfoThin = try JSONDecoder().decode(ToolInfoHeader.self, from: data) + guard toolInfoThin.serializationVersion == 0 else { + fatalError("Unsupported serialization version in \(swiftlyCoreDir / cmdHelp)") + } + + let toolInfo = try JSONDecoder().decode(ToolInfoV0.self, from: data) + + let cmdExtData = try? Data(contentsOf: swiftlyCoreDir / cmdHelp.replacingOccurrences(of: ".json", with: "-ext.json")) + + let cmdExt = if let cmdExtData { + try JSONDecoder().decode(CommandExtensions.self, from: cmdExtData) + } else { + CommandExtensions() + } + + let top = toolInfo.command + + allCmds += """ + extension SystemCommand { + \(self.asCommand(top, cmdExt).split(separator: "\n", omittingEmptySubsequences: false).map { String($0) }.joined(separator: "\n ")) + } + + + """ + } + + try await allCmds.write(to: swiftlyCoreDir / "CommandsNew.swift-new", atomically: true) + + let data = self.sha256sumjson.data(using: .utf8)! + + let toolInfoThin = try JSONDecoder().decode(ToolInfoHeader.self, from: data) + guard toolInfoThin.serializationVersion == 0 else { + fatalError("Unsupported serialization version") + } + + let toolInfo: ToolInfoV0 = try JSONDecoder().decode(ToolInfoV0.self, from: data) + + let extdata = self.sha256sumextension.data(using: .utf8)! + + let cmdExt: CommandExtensions = try JSONDecoder().decode(CommandExtensions.self, from: extdata) + + let top = toolInfo.command + + print("\(self.asCommand(top, cmdExt))") + } + + struct Vars { + var argInfos: [ArgumentInfoV0] + var cmdExt: CommandExtensions + var path: [String] + + init(_ args: [ArgumentInfoV0], _ cmdExt: CommandExtensions, path: [String]) { + self.argInfos = args.filter { $0.kind == .positional } + self.cmdExt = cmdExt + self.path = path + } + + var haveRepeats: Bool { self.argInfos.filter { $0.isRepeating && !$0.isOptional }.count > 0 } + + func type(_ arg: ArgumentInfoV0) -> String { + let argPath = (self.path + [arg.valueName!]).joined(separator: ".") + let ext: ArgumentExtension? = self.cmdExt.arguments?.filter { $0.path == argPath }.first + + if let ext, ext.type == "file" { + return "FilePath" + } + + return "String" + } + + var asSignature: [String] { + self.argInfos.map { + $0.isOptional ? + "\($0.asSwiftName): \($0.isRepeating ? "[\(self.type($0))]?" : self.type($0) + "? = nil")" : + "\($0.asSwiftName): \($0.isRepeating ? "[\(self.type($0))]" : self.type($0))" + } + } + + var asSignatureVariadic: [String] { + self.argInfos.map { + $0.isOptional ? + "\($0.asSwiftName): \($0.isRepeating ? "[\(self.type($0))]?" : self.type($0) + "? = nil")" : // Cannot be both optional and variadic + "\($0.asSwiftName): \($0.isRepeating ? "\(self.type($0))..." : self.type($0))" + } + } + + var asParameters: [String] { + self.argInfos.map { $0.asSwiftName + ": " + $0.asSwiftName } + } + + var asDeclarations: [String] { + self.argInfos.map { "public var \($0.asSwiftName): \($0.isRepeating ? "[\(self.type($0))]" : self.type($0))\($0.isOptional ? "?" : "")" } + } + + var asInitializations: [String] { + self.argInfos.map { "self.\($0.asSwiftName) = \($0.asSwiftName)" } + } + + var asArgs: [String] { + self.argInfos.map { + $0.isOptional ? + $0.isRepeating ? + "if let \($0.asSwiftName) = self.\($0.asSwiftName) { args += \($0.asSwiftName).map(\\.description) }" : + "if let \($0.asSwiftName) = self.\($0.asSwiftName) { args += [\($0.asSwiftName).description] }" : + $0.isRepeating ? + "args += self.\($0.asSwiftName).map(\\.description)" : + "args += [self.\($0.asSwiftName).description]" + } + } + } + + struct Options { + var argInfos: [ArgumentInfoV0] + var cmdExt: CommandExtensions + var path: [String] + + init(_ args: [ArgumentInfoV0], _ cmdExt: CommandExtensions, path: [String]) { + self.argInfos = args.filter { $0.kind == .option || $0.kind == .flag } + self.cmdExt = cmdExt + self.path = path + } + + var exist: Bool { self.argInfos.count != 0 } + + func type(_ arg: ArgumentInfoV0) -> String { + let argPath = (self.path + [arg.valueName!]).joined(separator: ".") + let ext: ArgumentExtension? = self.cmdExt.arguments?.filter { $0.path == argPath }.first + + if let ext, ext.type == "file" { + return "FilePath" + } + + return "String" + } + + func asSignature(_ structName: String) -> [String] { + self.exist ? ["_ options: [\(structName).Option]"] : [] + } + + func asSignatureVariadic(_ structName: String) -> [String] { + self.exist ? ["_ options: \(structName).Option..."] : [] + } + + var asParameter: [String] { + self.exist ? ["options"] : [] + } + + private func argSwitchCase(_ arg: ArgumentInfoV0) -> String { + let flag = arg.kind == .flag + let dashes = (self.cmdExt.optionsSingleDash ?? false) ? "-" : "--" + + return """ + case .\(arg.asSwiftName)\(!flag ? "(let \(arg.asSwiftName))" : ""): + ["\(dashes)\(arg.names!.filter { $0.kind == .long }.first!.name)"\(!flag ? ", String(describing: \(arg.asSwiftName))" : "")] + """.split(separator: "\n", omittingEmptySubsequences: false).joined(separator: "\n ") + } + + var asEnum: [String] { + guard self.exist else { return [] } + + return """ + public enum Option { + \(self.argInfos.map { "case \($0.asSwiftName)\($0.kind != .flag ? "(\(type($0)))" : "")" }.joined(separator: "\n ")) + + public func args() -> [String] { + switch self { + \(self.argInfos.map { self.argSwitchCase($0) }.joined(separator: "\n ")) + } + } + } + """.split(separator: "\n", omittingEmptySubsequences: false).map { String($0) } + } + + var asArgs: [String] { + guard self.exist else { return [] } + + return """ + for opt in self.options { + args.append(contentsOf: opt.args()) + } + """.split(separator: "\n", omittingEmptySubsequences: false).map { String($0) } + } + + var asDeclaration: [String] { + guard self.argInfos.count != 0 else { return [] } + + return ["public var options: [Option]"] + } + + var asInitialization: [String] { + self.exist ? ["self.options = options"] : [] + } + } + + func asCommand(_ command: CommandInfoV0, _ cmdExt: CommandExtensions, path: [String] = []) -> String { + let execName = command.commandName + + let swiftName = command.commandName.replacingOccurrences(of: "-", with: "") + + let funcName = swiftName + let structName = "\(swiftName)Command" + + func indent(_ level: Int) -> String { String(repeating: " ", count: level * 4) } + + let options = Options(command.arguments ?? [], cmdExt, path: path) + let vars = Vars(command.arguments ?? [], cmdExt, path: path) + + let helperFunc: String + if path.count == 0 { + helperFunc = """ + \((options.exist || vars.haveRepeats) ? """ + \(command.abstract != nil ? "// \(command.abstract!.replacingOccurrences(of: "\n", with: ""))" : "") + public static func \(funcName)(\((["executable: Executable = \(structName).defaultExecutable"] + options.asSignatureVariadic(structName) + vars.asSignatureVariadic).joined(separator: ", "))) -> \(structName) { + Self.\(funcName)(\((["executable: executable"] + options.asParameter + vars.asParameters).joined(separator: ", "))) + } + """ : "") + + \(command.abstract != nil ? "// \(command.abstract!.replacingOccurrences(of: "\n", with: ""))" : "") + public static func \(funcName)(\((["executable: Executable = \(structName).defaultExecutable"] + options.asSignature(structName) + vars.asSignature).joined(separator: ", "))) -> \(structName) { + \(structName)(\((["executable: executable"] + options.asParameter + vars.asParameters).joined(separator: ", "))) + } + """ + } else { + helperFunc = """ + \((options.exist || vars.haveRepeats) ? """ + \(command.abstract != nil ? "// \(command.abstract!.replacingOccurrences(of: "\n", with: ""))" : "") + public func \(funcName)(\((options.asSignatureVariadic(structName) + vars.asSignatureVariadic).joined(separator: ", "))) -> \(structName) { + self.\(funcName)(\((options.asParameter + vars.asParameters).joined(separator: ", "))) + } + """ : "") + + \(command.abstract != nil ? "// \(command.abstract!.replacingOccurrences(of: "\n", with: ""))" : "") + public func \(funcName)(\((options.asSignature(structName) + vars.asSignature).joined(separator: ", "))) -> \(structName) { + \(structName)(\((["parent: self"] + options.asParameter + vars.asParameters).joined(separator: ", "))) + } + """ + } + + let configFunc: String + if path.count == 0 { + configFunc = """ + public func config() -> Configuration { + var args: [String] = [] + + \(( + options.asArgs + + vars.asArgs + ).joined(separator: "\n" + indent(1))) + + return Configuration( + executable: self.executable, + arguments: Arguments(args), + environment: .inherit + ) + } + """.split(separator: "\n", omittingEmptySubsequences: false).joined(separator: "\n" + indent(1)) + } else { + configFunc = """ + public func config() -> Configuration { + var c = self.parent.config() + + var args = c.arguments.storage.map(\\.description) + + args.append("\(execName)") + + \(( + options.asArgs + + vars.asArgs + ).joined(separator: "\n" + indent(1))) + + c.arguments = .init(args) + + return c + } + """.split(separator: "\n", omittingEmptySubsequences: false).joined(separator: "\n" + indent(1)) + } + + let subcommands = (command.subcommands ?? []).map { asCommand($0, cmdExt, path: path + [$0.commandName]) }.joined(separator: "\n") + + let prefix = indent(path.count) + + return prefix + """ + \(helperFunc) + + public struct \(structName) { + \(( + (path.count == 0 ? [ + "public static var defaultExecutable: Executable { .name(\"\(execName)\") }", + "public var executable: Executable" + ] : + [ + "public var parent: \(command.superCommands!.last!)Command", + ]) + + options.asDeclaration + + vars.asDeclarations + ).joined(separator: "\n" + indent(1))) + + \(options.asEnum.joined(separator: "\n" + indent(1))) + + public init(\(([path.count == 0 ? "executable: Executable" : "parent: \(command.superCommands!.last!)Command"] + options.asSignature(structName) + vars.asSignature).joined(separator: ", "))) { + \(( + [path.count == 0 ? "self.executable = executable" : "self.parent = parent"] + + options.asInitialization + + vars.asInitializations + ).joined(separator: "\n" + indent(2))) + } + + \(configFunc) + + \(subcommands) + } + """.split(separator: "\n", omittingEmptySubsequences: false).joined(separator: "\n" + indent(path.count)) + } +} From 720a35c6d9cad4756dbc244b0dd6d2b01c0ac9d8 Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Mon, 5 May 2025 20:39:47 -0400 Subject: [PATCH 02/15] Add JSON for git Add support for short-only option names in generator --- Sources/SwiftlyCore/Commands.swift | 209 +---------------- Sources/SwiftlyCore/CommandsNew.swift | 219 ++++++++++++++++++ Tests/SwiftlyTests/CommandLineTests.swift | 22 +- .../BuildSwiftlyRelease.swift | 4 +- .../GenerateCommandModels.swift | 18 +- 5 files changed, 251 insertions(+), 221 deletions(-) diff --git a/Sources/SwiftlyCore/Commands.swift b/Sources/SwiftlyCore/Commands.swift index 06d91a56..ce078f0f 100644 --- a/Sources/SwiftlyCore/Commands.swift +++ b/Sources/SwiftlyCore/Commands.swift @@ -35,211 +35,10 @@ extension SystemCommand.getentCommand: Output { } } -extension SystemCommand { - // the stupid content tracker - // See git(1) for more information. - public static func git(executable: Executable = GitCommand.defaultExecutable, workingDir: FilePath? = nil) -> GitCommand { - GitCommand(executable: executable, workingDir: workingDir) - } - - public struct GitCommand { - public static var defaultExecutable: Executable { .name("git") } - - var executable: Executable - - var workingDir: FilePath? - - internal init(executable: Executable, workingDir: FilePath?) { - self.executable = executable - self.workingDir = workingDir - } - - func config() -> Configuration { - var args: [String] = [] - - if let workingDir { - args.append(contentsOf: ["-C", "\(workingDir)"]) - } - - return Configuration( - executable: self.executable, - arguments: Arguments(args), - environment: .inherit - ) - } - - public func _init() -> InitCommand { - InitCommand(self) - } - - public struct InitCommand { - var git: GitCommand - - internal init(_ git: GitCommand) { - self.git = git - } - - public func config() -> Configuration { - var c = self.git.config() - - var args = c.arguments.storage.map(\.description) - - args.append("init") - - c.arguments = .init(args) - - return c - } - } - - public func commit(_ options: CommitCommand.Option...) -> CommitCommand { - self.commit(options: options) - } - - public func commit(options: [CommitCommand.Option]) -> CommitCommand { - CommitCommand(self, options: options) - } - - public struct CommitCommand { - var git: GitCommand - - var options: [Option] - - internal init(_ git: GitCommand, options: [Option]) { - self.git = git - self.options = options - } - - public enum Option { - case allowEmpty - case allowEmptyMessage - case message(String) - - public func args() -> [String] { - switch self { - case .allowEmpty: - ["--allow-empty"] - case .allowEmptyMessage: - ["--allow-empty-message"] - case let .message(message): - ["-m", message] - } - } - } - - public func config() -> Configuration { - var c = self.git.config() - - var args = c.arguments.storage.map(\.description) - - args.append("commit") - for option in self.options { - args.append(contentsOf: option.args()) - } - - c.arguments = .init(args) - - return c - } - } - - public func log(_ options: LogCommand.Option...) -> LogCommand { - LogCommand(self, options) - } - - public struct LogCommand { - var git: GitCommand - var options: [Option] - - internal init(_ git: GitCommand, _ options: [Option]) { - self.git = git - self.options = options - } - - public enum Option { - case maxCount(Int) - case pretty(String) - - func args() -> [String] { - switch self { - case let .maxCount(num): - return ["--max-count=\(num)"] - case let .pretty(format): - return ["--pretty=\(format)"] - } - } - } - - public func config() -> Configuration { - var c = self.git.config() - - var args = c.arguments.storage.map(\.description) - - args.append("log") - - for opt in self.options { - args.append(contentsOf: opt.args()) - } - - c.arguments = .init(args) - - return c - } - } - - public func diffIndex(_ options: DiffIndexCommand.Option..., treeIsh: String?) -> DiffIndexCommand { - DiffIndexCommand(self, options, treeIsh: treeIsh) - } - - public struct DiffIndexCommand { - var git: GitCommand - var options: [Option] - var treeIsh: String? - - internal init(_ git: GitCommand, _ options: [Option], treeIsh: String?) { - self.git = git - self.options = options - self.treeIsh = treeIsh - } - - public enum Option { - case quiet - - func args() -> [String] { - switch self { - case .quiet: - return ["--quiet"] - } - } - } - - public func config() -> Configuration { - var c = self.git.config() - - var args = c.arguments.storage.map(\.description) - - args.append("diff-index") - - for opt in self.options { - args.append(contentsOf: opt.args()) - } - - if let treeIsh = self.treeIsh { - args.append(treeIsh) - } - - c.arguments = .init(args) - - return c - } - } - } -} - -extension SystemCommand.GitCommand.LogCommand: Output {} -extension SystemCommand.GitCommand.DiffIndexCommand: Runnable {} -extension SystemCommand.GitCommand.InitCommand: Runnable {} -extension SystemCommand.GitCommand.CommitCommand: Runnable {} +extension SystemCommand.gitCommand.logCommand: Output {} +extension SystemCommand.gitCommand.diffindexCommand: Runnable {} +extension SystemCommand.gitCommand.initCommand: Runnable {} +extension SystemCommand.gitCommand.commitCommand: Runnable {} extension SystemCommand { // manipulate tape archives diff --git a/Sources/SwiftlyCore/CommandsNew.swift b/Sources/SwiftlyCore/CommandsNew.swift index 9851d578..dbee8367 100644 --- a/Sources/SwiftlyCore/CommandsNew.swift +++ b/Sources/SwiftlyCore/CommandsNew.swift @@ -99,6 +99,225 @@ extension SystemCommand { } } +extension SystemCommand { + // the stupid content tracker. See git(1) for more information. + public static func git(executable: Executable = gitCommand.defaultExecutable, _ options: gitCommand.Option...) -> gitCommand { + Self.git(executable: executable, options) + } + + // the stupid content tracker. See git(1) for more information. + public static func git(executable: Executable = gitCommand.defaultExecutable, _ options: [gitCommand.Option]) -> gitCommand { + gitCommand(executable: executable, options) + } + + public struct gitCommand { + public static var defaultExecutable: Executable { .name("git") } + public var executable: Executable + public var options: [Option] + + public enum Option { + case workingDir(FilePath) + + public func args() -> [String] { + switch self { + case let .workingDir(workingDir): + ["-C", String(describing: workingDir)] + } + } + } + + public init(executable: Executable, _ options: [gitCommand.Option]) { + self.executable = executable + self.options = options + } + + public func config() -> Configuration { + var args: [String] = [] + + for opt in self.options { + args.append(contentsOf: opt.args()) + } + + return Configuration( + executable: self.executable, + arguments: Arguments(args), + environment: .inherit + ) + } + + public func _init() -> initCommand { + initCommand(parent: self) + } + + public struct initCommand { + public var parent: gitCommand + + public init(parent: gitCommand) { + self.parent = parent + } + + public func config() -> Configuration { + var c = self.parent.config() + + var args = c.arguments.storage.map(\.description) + + args.append("init") + + c.arguments = .init(args) + + return c + } + } + + public func commit(_ options: commitCommand.Option...) -> commitCommand { + self.commit(options) + } + + public func commit(_ options: [commitCommand.Option]) -> commitCommand { + commitCommand(parent: self, options) + } + + public struct commitCommand { + public var parent: gitCommand + public var options: [Option] + + public enum Option { + case allow_empty + case allow_empty_message + case message(String) + + public func args() -> [String] { + switch self { + case .allow_empty: + ["--allow-empty"] + case .allow_empty_message: + ["--allow-empty-message"] + case let .message(message): + ["--message", String(describing: message)] + } + } + } + + public init(parent: gitCommand, _ options: [commitCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var args = c.arguments.storage.map(\.description) + + args.append("commit") + + for opt in self.options { + args.append(contentsOf: opt.args()) + } + + c.arguments = .init(args) + + return c + } + } + + public func log(_ options: logCommand.Option...) -> logCommand { + self.log(options) + } + + public func log(_ options: [logCommand.Option]) -> logCommand { + logCommand(parent: self, options) + } + + public struct logCommand { + public var parent: gitCommand + public var options: [Option] + + public enum Option { + case max_count(String) + case pretty(String) + + public func args() -> [String] { + switch self { + case let .max_count(max_count): + ["--max-count", String(describing: max_count)] + case let .pretty(pretty): + ["--pretty", String(describing: pretty)] + } + } + } + + public init(parent: gitCommand, _ options: [logCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var args = c.arguments.storage.map(\.description) + + args.append("log") + + for opt in self.options { + args.append(contentsOf: opt.args()) + } + + c.arguments = .init(args) + + return c + } + } + + public func diffindex(_ options: diffindexCommand.Option..., tree_ish: String) -> diffindexCommand { + self.diffindex(options, tree_ish: tree_ish) + } + + public func diffindex(_ options: [diffindexCommand.Option], tree_ish: String) -> diffindexCommand { + diffindexCommand(parent: self, options, tree_ish: tree_ish) + } + + public struct diffindexCommand { + public var parent: gitCommand + public var options: [Option] + public var tree_ish: String + + public enum Option { + case quiet + + public func args() -> [String] { + switch self { + case .quiet: + ["--quiet"] + } + } + } + + public init(parent: gitCommand, _ options: [diffindexCommand.Option], tree_ish: String) { + self.parent = parent + self.options = options + self.tree_ish = tree_ish + } + + public func config() -> Configuration { + var c = self.parent.config() + + var args = c.arguments.storage.map(\.description) + + args.append("diff-index") + + for opt in self.options { + args.append(contentsOf: opt.args()) + } + args += [self.tree_ish.description] + + c.arguments = .init(args) + + return c + } + } + } +} + extension SystemCommand { // Create or operate on universal files. See lipo(1) for more information. public static func lipo(executable: Executable = lipoCommand.defaultExecutable, input_file: FilePath...) -> lipoCommand { diff --git a/Tests/SwiftlyTests/CommandLineTests.swift b/Tests/SwiftlyTests/CommandLineTests.swift index d8296cdf..7422133b 100644 --- a/Tests/SwiftlyTests/CommandLineTests.swift +++ b/Tests/SwiftlyTests/CommandLineTests.swift @@ -64,43 +64,43 @@ public struct CommandLineTests { } @Test func testGitModel() { - var config = sys.git().log(.maxCount(1), .pretty("format:%d")).config() - #expect(String(describing: config) == "git log --max-count=1 --pretty=format:%d") + var config = sys.git().log(.max_count("1"), .pretty("format:%d")).config() + #expect(String(describing: config) == "git log --max-count 1 --pretty format:%d") config = sys.git().log().config() #expect(String(describing: config) == "git log") config = sys.git().log(.pretty("foo")).config() - #expect(String(describing: config) == "git log --pretty=foo") + #expect(String(describing: config) == "git log --pretty foo") - config = sys.git().diffIndex(.quiet, treeIsh: "HEAD").config() + config = sys.git().diffindex(.quiet, tree_ish: "HEAD").config() #expect(String(describing: config) == "git diff-index --quiet HEAD") - config = sys.git().diffIndex(treeIsh: "main").config() + config = sys.git().diffindex(tree_ish: "main").config() #expect(String(describing: config) == "git diff-index main") } @Test( .tags(.medium), .enabled { - try await sys.GitCommand.defaultExecutable.exists() + try await sys.gitCommand.defaultExecutable.exists() } ) func testGit() async throws { // GIVEN a simple git repository let tmp = fs.mktemp() try await fs.mkdir(atPath: tmp) - try await sys.git(workingDir: tmp)._init().run(Swiftly.currentPlatform) + try await sys.git(.workingDir(tmp))._init().run(Swiftly.currentPlatform) // AND a simple history try "Some text".write(to: tmp / "foo.txt", atomically: true) try await Swiftly.currentPlatform.runProgram("git", "-C", "\(tmp)", "add", "foo.txt") try await Swiftly.currentPlatform.runProgram("git", "-C", "\(tmp)", "config", "user.email", "user@example.com") - try await sys.git(workingDir: tmp).commit(.message("Initial commit")).run(Swiftly.currentPlatform) - try await sys.git(workingDir: tmp).diffIndex(.quiet, treeIsh: "HEAD").run(Swiftly.currentPlatform) + try await sys.git(.workingDir(tmp)).commit(.message("Initial commit")).run(Swiftly.currentPlatform) + try await sys.git(.workingDir(tmp)).diffindex(.quiet, tree_ish: "HEAD").run(Swiftly.currentPlatform) // WHEN inspecting the log - let log = try await sys.git(workingDir: tmp).log(.maxCount(1)).output(Swiftly.currentPlatform)! + let log = try await sys.git(.workingDir(tmp)).log(.max_count("1")).output(Swiftly.currentPlatform)! // THEN it is not empty #expect(log != "") @@ -109,7 +109,7 @@ public struct CommandLineTests { // THEN diff index finds a change try await #expect(throws: Error.self) { - try await sys.git(workingDir: tmp).diffIndex(.quiet, treeIsh: "HEAD").run(Swiftly.currentPlatform) + try await sys.git(.workingDir(tmp)).diffindex(.quiet, tree_ish: "HEAD").run(Swiftly.currentPlatform) } } diff --git a/Tools/build-swiftly-release/BuildSwiftlyRelease.swift b/Tools/build-swiftly-release/BuildSwiftlyRelease.swift index 4985dbac..78560032 100644 --- a/Tools/build-swiftly-release/BuildSwiftlyRelease.swift +++ b/Tools/build-swiftly-release/BuildSwiftlyRelease.swift @@ -110,12 +110,12 @@ struct BuildSwiftlyRelease: AsyncParsableCommand { return } - guard let gitTags = try await sys.git().log(.maxCount(1), .pretty("format:%d")).output(currentPlatform), gitTags.contains("tag: \(self.version)") else { + guard let gitTags = try await sys.git().log(.max_count("1"), .pretty("format:%d")).output(currentPlatform), gitTags.contains("tag: \(self.version)") else { throw Error(message: "Git repo is not yet tagged for release \(self.version). Please tag this commit with that version and push it to GitHub.") } do { - try await sys.git().diffIndex(.quiet, treeIsh: "HEAD").run(currentPlatform) + try await sys.git().diffindex(.quiet, tree_ish: "HEAD").run(currentPlatform) } catch { throw Error(message: "Git repo has local changes. First commit these changes, tag the commit with release \(self.version) and push the tag to GitHub.") } diff --git a/Tools/generate-command-models/GenerateCommandModels.swift b/Tools/generate-command-models/GenerateCommandModels.swift index 21355d0e..df630390 100644 --- a/Tools/generate-command-models/GenerateCommandModels.swift +++ b/Tools/generate-command-models/GenerateCommandModels.swift @@ -293,11 +293,19 @@ struct GenerateCommandModels: AsyncParsableCommand { private func argSwitchCase(_ arg: ArgumentInfoV0) -> String { let flag = arg.kind == .flag - let dashes = (self.cmdExt.optionsSingleDash ?? false) ? "-" : "--" + var name: String? + if let longName = arg.names?.filter { $0.kind == .long }.first?.name { + let dashes = (self.cmdExt.optionsSingleDash ?? false) ? "-" : "--" + name = dashes + longName + } else if let shortName = arg.names?.filter { $0.kind == .short }.first?.name { + name = "-" + shortName + } + + guard let name else { fatalError("Unable to find a suitable argument name for \(arg)") } return """ case .\(arg.asSwiftName)\(!flag ? "(let \(arg.asSwiftName))" : ""): - ["\(dashes)\(arg.names!.filter { $0.kind == .long }.first!.name)"\(!flag ? ", String(describing: \(arg.asSwiftName))" : "")] + ["\(name)"\(!flag ? ", String(describing: \(arg.asSwiftName))" : "")] """.split(separator: "\n", omittingEmptySubsequences: false).joined(separator: "\n ") } @@ -343,7 +351,11 @@ struct GenerateCommandModels: AsyncParsableCommand { let swiftName = command.commandName.replacingOccurrences(of: "-", with: "") - let funcName = swiftName + var funcName = swiftName + if funcName == "init" { + // TODO: handle all of Swift's keywords here + funcName = "_init" + } let structName = "\(swiftName)Command" func indent(_ level: Int) -> String { String(repeating: " ", count: level * 4) } From 652022dbcc50601dde0399d7fe7fa81db279ad23 Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Tue, 6 May 2025 08:08:14 -0400 Subject: [PATCH 03/15] Add the git JSON files --- Sources/SwiftlyCore/git-ext.json | 8 ++ Sources/SwiftlyCore/git.json | 172 +++++++++++++++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 Sources/SwiftlyCore/git-ext.json create mode 100644 Sources/SwiftlyCore/git.json diff --git a/Sources/SwiftlyCore/git-ext.json b/Sources/SwiftlyCore/git-ext.json new file mode 100644 index 00000000..aaab4811 --- /dev/null +++ b/Sources/SwiftlyCore/git-ext.json @@ -0,0 +1,8 @@ +{ + "arguments": [ + { + "path": "workingDir", + "type": "file" + } + ] +} diff --git a/Sources/SwiftlyCore/git.json b/Sources/SwiftlyCore/git.json new file mode 100644 index 00000000..1f47f807 --- /dev/null +++ b/Sources/SwiftlyCore/git.json @@ -0,0 +1,172 @@ +{ + "serializationVersion": 0, + "command": { + "commandName": "git", + "abstract": "the stupid content tracker. See git(1) for more information.", + "shouldDisplay": true, + "arguments": [ + { + "names": [ + { + "kind": "short", + "name": "C" + } + ], + "preferredName": { + "kind": "short", + "name": "C" + }, + "valueName": "workingDir", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "shouldDisplay": true + } + ], + "subcommands": [ + { + "commandName": "init", + "superCommands": [ + "git" + ], + "shouldDisplay": true, + }, + { + "commandName": "commit", + "superCommands": [ + "git" + ], + "shouldDisplay": true, + "arguments": [ + { + "names": [ + { + "kind": "long", + "name": "allow-empty" + } + ], + "preferredName": { + "kind": "long", + "name": "allow-empty" + }, + "valueName": "allow-empty", + "shouldDisplay": true, + "kind": "flag", + "isOptional": true, + "isRepeating": false + }, + { + "names": [ + { + "kind": "long", + "name": "allow-empty-message" + } + ], + "preferredName": { + "kind": "long", + "name": "allow-empty-message" + }, + "valueName": "allow-empty-message", + "shouldDisplay": true, + "kind": "flag", + "isOptional": true, + "isRepeating": false + }, + { + "names": [ + { + "kind": "long", + "name": "message" + } + ], + "preferredName": { + "kind": "long", + "name": "message" + }, + "valueName": "message", + "shouldDisplay": true, + "kind": "option", + "isOptional": true, + "isRepeating": true + } + ] + }, + { + "commandName": "log", + "superCommands": [ + "git" + ], + "shouldDisplay": true, + "arguments": [ + { + "names": [ + { + "kind": "long", + "name": "max-count" + } + ], + "preferredName": { + "kind": "long", + "name": "max-count" + }, + "valueName": "max-count", + "shouldDisplay": true, + "kind": "option", + "isOptional": true, + "isRepeating": false + }, + { + "names": [ + { + "kind": "long", + "name": "pretty" + } + ], + "preferredName": { + "kind": "long", + "name": "pretty" + }, + "valueName": "pretty", + "shouldDisplay": true, + "kind": "option", + "isOptional": true, + "isRepeating": true + } + ] + }, + { + "commandName": "diff-index", + "superCommands": [ + "git" + ], + "shouldDisplay": true, + "arguments": [ + { + "names": [ + { + "kind": "long", + "name": "quiet" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "valueName": "quiet", + "shouldDisplay": true, + "kind": "flag", + "isOptional": true, + "isRepeating": false + }, + { + "valueName": "tree-ish", + "shouldDisplay": true, + "kind": "positional", + "isOptional": false, + "isRepeating": false + } + ] + } + ] + } +} From 33f3cec96478e1f8013ec9f6d33d0737108d4dbc Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Tue, 6 May 2025 08:49:05 -0400 Subject: [PATCH 04/15] Add JSON for tar --- Sources/SwiftlyCore/Commands.swift | 165 +----------------- Sources/SwiftlyCore/CommandsNew.swift | 153 ++++++++++++++++ Sources/SwiftlyCore/tar-ext.json | 20 +++ Sources/SwiftlyCore/tar.json | 156 +++++++++++++++++ Tests/SwiftlyTests/CommandLineTests.swift | 18 +- .../BuildSwiftlyRelease.swift | 6 +- 6 files changed, 343 insertions(+), 175 deletions(-) create mode 100644 Sources/SwiftlyCore/tar-ext.json create mode 100644 Sources/SwiftlyCore/tar.json diff --git a/Sources/SwiftlyCore/Commands.swift b/Sources/SwiftlyCore/Commands.swift index ce078f0f..56138447 100644 --- a/Sources/SwiftlyCore/Commands.swift +++ b/Sources/SwiftlyCore/Commands.swift @@ -40,169 +40,8 @@ extension SystemCommand.gitCommand.diffindexCommand: Runnable {} extension SystemCommand.gitCommand.initCommand: Runnable {} extension SystemCommand.gitCommand.commitCommand: Runnable {} -extension SystemCommand { - // manipulate tape archives - // See tar(1) for more details - public static func tar(executable: Executable = TarCommand.defaultExecutable, _ options: TarCommand.Option...) -> TarCommand { - Self.tar(executable: executable, options) - } - - // manipulate tape archives - // See tar(1) for more details - public static func tar(executable: Executable = TarCommand.defaultExecutable, _ options: [TarCommand.Option]) -> TarCommand { - TarCommand(executable: executable, options) - } - - public struct TarCommand { - public static var defaultExecutable: Executable { .name("tar") } - - var executable: Executable - - var options: [Option] - - public init(executable: Executable, _ options: [Option]) { - self.executable = executable - self.options = options - } - - public enum Option { - case directory(FilePath) - - public func args() -> [String] { - switch self { - case let .directory(directory): - return ["-C", "\(directory)"] // This is the only portable form between macOS and GNU - } - } - } - - func config() -> Configuration { - var args: [String] = [] - - for opt in self.options { - args.append(contentsOf: opt.args()) - } - - return Configuration( - executable: self.executable, - arguments: Arguments(args), - environment: .inherit - ) - } - - public func create(_ options: CreateCommand.Option...) -> CreateCommand { - self.create(options, files: []) - } - - public func create(_ options: CreateCommand.Option..., files: FilePath...) -> CreateCommand { - self.create(options, files: files) - } - - public func create(_ options: [CreateCommand.Option], files: [FilePath]) -> CreateCommand { - CreateCommand(self, options, files: files) - } - - public struct CreateCommand { - var tar: TarCommand - - var options: [Option] - - var files: [FilePath] - - init(_ tar: TarCommand, _ options: [Option], files: [FilePath]) { - self.tar = tar - self.options = options - self.files = files - } - - public enum Option { - case archive(FilePath) - case compressed - case verbose - - func args() -> [String] { - switch self { - case let .archive(archive): - return ["--file", "\(archive)"] - case .compressed: - return ["-z"] - case .verbose: - return ["-v"] - } - } - } - - public func config() -> Configuration { - var c = self.tar.config() - - var args = c.arguments.storage.map(\.description) - - args.append("-c") - - for opt in self.options { - args.append(contentsOf: opt.args()) - } - - args.append(contentsOf: self.files.map(\.string)) - - c.arguments = .init(args) - - return c - } - } - - public func extract(_ options: ExtractCommand.Option...) -> ExtractCommand { - ExtractCommand(self, options) - } - - public struct ExtractCommand { - var tar: TarCommand - - var options: [Option] - - init(_ tar: TarCommand, _ options: [Option]) { - self.tar = tar - self.options = options - } - - public enum Option { - case archive(FilePath) - case compressed - case verbose - - func args() -> [String] { - switch self { - case let .archive(archive): - return ["--file", "\(archive)"] - case .compressed: - return ["-z"] - case .verbose: - return ["-v"] - } - } - } - - public func config() -> Configuration { - var c = self.tar.config() - - var args = c.arguments.storage.map(\.description) - - args.append("-x") - - for opt in self.options { - args.append(contentsOf: opt.args()) - } - - c.arguments = .init(args) - - return c - } - } - } -} - -extension SystemCommand.TarCommand.CreateCommand: Runnable {} -extension SystemCommand.TarCommand.ExtractCommand: Runnable {} +extension SystemCommand.tarCommand.createCommand: Runnable {} +extension SystemCommand.tarCommand.extractCommand: Runnable {} extension SystemCommand { public static func swift(executable: Executable = SwiftCommand.defaultExecutable) -> SwiftCommand { diff --git a/Sources/SwiftlyCore/CommandsNew.swift b/Sources/SwiftlyCore/CommandsNew.swift index dbee8367..371f36de 100644 --- a/Sources/SwiftlyCore/CommandsNew.swift +++ b/Sources/SwiftlyCore/CommandsNew.swift @@ -511,3 +511,156 @@ extension SystemCommand { } } } + +extension SystemCommand { + // manipulate tape archives. See tar(1) for more information. + public static func tar(executable: Executable = tarCommand.defaultExecutable, _ options: tarCommand.Option...) -> tarCommand { + Self.tar(executable: executable, options) + } + + // manipulate tape archives. See tar(1) for more information. + public static func tar(executable: Executable = tarCommand.defaultExecutable, _ options: [tarCommand.Option]) -> tarCommand { + tarCommand(executable: executable, options) + } + + public struct tarCommand { + public static var defaultExecutable: Executable { .name("tar") } + public var executable: Executable + public var options: [Option] + + public enum Option { + case directory(FilePath) + + public func args() -> [String] { + switch self { + case let .directory(directory): + ["-C", String(describing: directory)] + } + } + } + + public init(executable: Executable, _ options: [tarCommand.Option]) { + self.executable = executable + self.options = options + } + + public func config() -> Configuration { + var args: [String] = [] + + for opt in self.options { + args.append(contentsOf: opt.args()) + } + + return Configuration( + executable: self.executable, + arguments: Arguments(args), + environment: .inherit + ) + } + + public func create(_ options: createCommand.Option..., files: [FilePath]?) -> createCommand { + self.create(options, files: files) + } + + public func create(_ options: [createCommand.Option], files: [FilePath]?) -> createCommand { + createCommand(parent: self, options, files: files) + } + + public struct createCommand { + public var parent: tarCommand + public var options: [Option] + public var files: [FilePath]? + + public enum Option { + case archive(FilePath) + case compressed + case verbose + + public func args() -> [String] { + switch self { + case let .archive(archive): + ["--file", String(describing: archive)] + case .compressed: + ["-z"] + case .verbose: + ["-v"] + } + } + } + + public init(parent: tarCommand, _ options: [createCommand.Option], files: [FilePath]?) { + self.parent = parent + self.options = options + self.files = files + } + + public func config() -> Configuration { + var c = self.parent.config() + + var args = c.arguments.storage.map(\.description) + + args.append("--create") + + for opt in self.options { + args.append(contentsOf: opt.args()) + } + if let files = self.files { args += files.map(\.description) } + + c.arguments = .init(args) + + return c + } + } + + public func extract(_ options: extractCommand.Option...) -> extractCommand { + self.extract(options) + } + + public func extract(_ options: [extractCommand.Option]) -> extractCommand { + extractCommand(parent: self, options) + } + + public struct extractCommand { + public var parent: tarCommand + public var options: [Option] + + public enum Option { + case archive(FilePath) + case compressed + case verbose + + public func args() -> [String] { + switch self { + case let .archive(archive): + ["--file", String(describing: archive)] + case .compressed: + ["-z"] + case .verbose: + ["-v"] + } + } + } + + public init(parent: tarCommand, _ options: [extractCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var args = c.arguments.storage.map(\.description) + + args.append("--extract") + + for opt in self.options { + args.append(contentsOf: opt.args()) + } + + c.arguments = .init(args) + + return c + } + } + } +} diff --git a/Sources/SwiftlyCore/tar-ext.json b/Sources/SwiftlyCore/tar-ext.json new file mode 100644 index 00000000..3030e032 --- /dev/null +++ b/Sources/SwiftlyCore/tar-ext.json @@ -0,0 +1,20 @@ +{ + "arguments": [ + { + "path": "directory", + "type": "file" + }, + { + "path": "--extract.archive", + "type": "file" + }, + { + "path": "--create.archive", + "type": "file" + }, + { + "path": "--create.files", + "type": "file" + } + ] +} diff --git a/Sources/SwiftlyCore/tar.json b/Sources/SwiftlyCore/tar.json new file mode 100644 index 00000000..4455f960 --- /dev/null +++ b/Sources/SwiftlyCore/tar.json @@ -0,0 +1,156 @@ +{ + "serializationVersion": 0, + "command": { + "commandName": "tar", + "abstract": "manipulate tape archives. See tar(1) for more information.", + "shouldDisplay": true, + "arguments": [ + { + "names": [ + { + "kind": "short", + "name": "C" + } + ], + "preferredName": { + "kind": "short", + "name": "C" + }, + "valueName": "directory", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "shouldDisplay": true + } + ], + "subcommands": [ + { + "commandName": "--create", + "superCommands": [ + "tar" + ], + "shouldDisplay": true, + "arguments": [ + { + "names": [ + { + "kind": "long", + "name": "file" + } + ], + "preferredName": { + "kind": "long", + "name": "file" + }, + "valueName": "archive", + "shouldDisplay": true, + "kind": "option", + "isOptional": true, + "isRepeating": false + }, + { + "names": [ + { + "kind": "short", + "name": "z" + } + ], + "preferredName": { + "kind": "short", + "name": "z" + }, + "valueName": "compressed", + "shouldDisplay": true, + "kind": "flag", + "isOptional": true, + "isRepeating": false + }, + { + "names": [ + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "short", + "name": "v" + }, + "valueName": "verbose", + "shouldDisplay": true, + "kind": "flag", + "isOptional": true, + "isRepeating": false + }, + { + "valueName": "files", + "shouldDisplay": true, + "kind": "positional", + "isOptional": true, + "isRepeating": true + } + ] + }, + { + "commandName": "--extract", + "superCommands": [ + "tar" + ], + "shouldDisplay": true, + "arguments": [ + { + "names": [ + { + "kind": "long", + "name": "file" + } + ], + "preferredName": { + "kind": "long", + "name": "file" + }, + "valueName": "archive", + "shouldDisplay": true, + "kind": "option", + "isOptional": true, + "isRepeating": false + }, + { + "names": [ + { + "kind": "short", + "name": "z" + } + ], + "preferredName": { + "kind": "short", + "name": "z" + }, + "valueName": "compressed", + "shouldDisplay": true, + "kind": "flag", + "isOptional": true, + "isRepeating": false + }, + { + "names": [ + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "short", + "name": "v" + }, + "valueName": "verbose", + "shouldDisplay": true, + "kind": "flag", + "isOptional": true, + "isRepeating": false + } + ] + } + ] + } +} diff --git a/Tests/SwiftlyTests/CommandLineTests.swift b/Tests/SwiftlyTests/CommandLineTests.swift index 7422133b..5f376897 100644 --- a/Tests/SwiftlyTests/CommandLineTests.swift +++ b/Tests/SwiftlyTests/CommandLineTests.swift @@ -114,23 +114,23 @@ public struct CommandLineTests { } @Test func testTarModel() { - var config = sys.tar(.directory("/some/cool/stuff")).create(.compressed, .archive("abc.tgz"), files: "a", "b").config() - #expect(String(describing: config) == "tar -C /some/cool/stuff -c -z --file abc.tgz a b") + var config = sys.tar(.directory("/some/cool/stuff")).create(.compressed, .archive("abc.tgz"), files: ["a", "b"]).config() + #expect(String(describing: config) == "tar -C /some/cool/stuff --create -z --file abc.tgz a b") - config = sys.tar().create(.archive("myarchive.tar")).config() - #expect(String(describing: config) == "tar -c --file myarchive.tar") + config = sys.tar().create(.archive("myarchive.tar"), files: nil).config() + #expect(String(describing: config) == "tar --create --file myarchive.tar") config = sys.tar(.directory("/this/is/the/place")).extract(.compressed, .archive("def.tgz")).config() - #expect(String(describing: config) == "tar -C /this/is/the/place -x -z --file def.tgz") + #expect(String(describing: config) == "tar -C /this/is/the/place --extract -z --file def.tgz") config = sys.tar().extract(.archive("somearchive.tar")).config() - #expect(String(describing: config) == "tar -x --file somearchive.tar") + #expect(String(describing: config) == "tar --extract --file somearchive.tar") } @Test( .tags(.medium), .enabled { - try await sys.TarCommand.defaultExecutable.exists() + try await sys.tarCommand.defaultExecutable.exists() } ) func testTar() async throws { @@ -142,8 +142,8 @@ public struct CommandLineTests { let arch = fs.mktemp(ext: "tar") let archCompressed = fs.mktemp(ext: "tgz") - try await sys.tar(.directory(tmp)).create(.verbose, .archive(arch), files: FilePath(readme)).run(Swiftly.currentPlatform) - try await sys.tar(.directory(tmp)).create(.verbose, .compressed, .archive(archCompressed), files: FilePath(readme)).run(Swiftly.currentPlatform) + try await sys.tar(.directory(tmp)).create(.verbose, .archive(arch), files: [FilePath(readme)]).run(Swiftly.currentPlatform) + try await sys.tar(.directory(tmp)).create(.verbose, .compressed, .archive(archCompressed), files: [FilePath(readme)]).run(Swiftly.currentPlatform) let tmp2 = fs.mktemp() try await fs.mkdir(atPath: tmp2) diff --git a/Tools/build-swiftly-release/BuildSwiftlyRelease.swift b/Tools/build-swiftly-release/BuildSwiftlyRelease.swift index 78560032..d68e5d70 100644 --- a/Tools/build-swiftly-release/BuildSwiftlyRelease.swift +++ b/Tools/build-swiftly-release/BuildSwiftlyRelease.swift @@ -247,7 +247,7 @@ struct BuildSwiftlyRelease: AsyncParsableCommand { let releaseArchive = releaseDir / "swiftly-\(version)-x86_64.tar.gz" #endif - try await sys.tar(.directory(releaseDir)).create(.compressed, .archive(releaseArchive), files: "swiftly", "LICENSE.txt").run(currentPlatform) + try await sys.tar(.directory(releaseDir)).create(.compressed, .archive(releaseArchive), files: ["swiftly", "LICENSE.txt"]).run(currentPlatform) print(releaseArchive) @@ -261,7 +261,7 @@ struct BuildSwiftlyRelease: AsyncParsableCommand { #endif try await sys.swift().build(.swiftSdk("\(arch)-swift-linux-musl"), .product("test-swiftly"), .pkgConfigPath(pkgConfigPath / "lib/pkgconfig"), .staticSwiftStdlib, .configuration("debug")).run(currentPlatform) - try await sys.tar(.directory(debugDir)).create(.compressed, .archive(testArchive), files: "test-swiftly").run(currentPlatform) + try await sys.tar(.directory(debugDir)).create(.compressed, .archive(testArchive), files: ["test-swiftly"]).run(currentPlatform) print(testArchive) } @@ -352,7 +352,7 @@ struct BuildSwiftlyRelease: AsyncParsableCommand { .create(.output(swiftlyBinDir / "swiftly")) .runEcho(currentPlatform) - try await sys.tar(.directory(".build/x86_64-apple-macosx/debug")).create(.compressed, .archive(testArchive), files: "test-swiftly").run(currentPlatform) + try await sys.tar(.directory(".build/x86_64-apple-macosx/debug")).create(.compressed, .archive(testArchive), files: ["test-swiftly"]).run(currentPlatform) print(testArchive) } From b2b386b796b3f417ff82e45db172f6e5f5d7b734 Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Tue, 6 May 2025 09:46:58 -0400 Subject: [PATCH 05/15] Adopt JSON for swift --- Sources/SwiftlyCore/Commands.swift | 304 +- Sources/SwiftlyCore/CommandsNew.swift | 10217 ++- Sources/SwiftlyCore/swift-ext.json | 16 + Sources/SwiftlyCore/swift.json | 52259 ++++++++++++++++ Tests/SwiftlyTests/CommandLineTests.swift | 16 +- .../BuildSwiftlyRelease.swift | 8 +- .../GenerateCommandModels.swift | 22 +- 7 files changed, 62464 insertions(+), 378 deletions(-) create mode 100644 Sources/SwiftlyCore/swift-ext.json create mode 100644 Sources/SwiftlyCore/swift.json diff --git a/Sources/SwiftlyCore/Commands.swift b/Sources/SwiftlyCore/Commands.swift index 56138447..2418c735 100644 --- a/Sources/SwiftlyCore/Commands.swift +++ b/Sources/SwiftlyCore/Commands.swift @@ -43,304 +43,12 @@ extension SystemCommand.gitCommand.commitCommand: Runnable {} extension SystemCommand.tarCommand.createCommand: Runnable {} extension SystemCommand.tarCommand.extractCommand: Runnable {} -extension SystemCommand { - public static func swift(executable: Executable = SwiftCommand.defaultExecutable) -> SwiftCommand { - SwiftCommand(executable: executable) - } - - public struct SwiftCommand { - public static var defaultExecutable: Executable { .name("swift") } - - public var executable: Executable - - public init(executable: Executable) { - self.executable = executable - } - - func config() -> Configuration { - var args: [String] = [] - - return Configuration( - executable: self.executable, - arguments: Arguments(args), - environment: .inherit - ) - } - - public func package() -> PackageCommand { - PackageCommand(self) - } - - public struct PackageCommand { - var swift: SwiftCommand - - init(_ swift: SwiftCommand) { - self.swift = swift - } - - public func config() -> Configuration { - var c = self.swift.config() - - var args = c.arguments.storage.map(\.description) - - args.append("package") - - c.arguments = .init(args) - - return c - } - - public func reset() -> ResetCommand { - ResetCommand(self) - } - - public struct ResetCommand { - var packageCommand: PackageCommand - - init(_ packageCommand: PackageCommand) { - self.packageCommand = packageCommand - } - - public func config() -> Configuration { - var c = self.packageCommand.config() - - var args = c.arguments.storage.map(\.description) - - args.append("reset") - - c.arguments = .init(args) - - return c - } - } - - public func clean() -> CleanCommand { - CleanCommand(self) - } - - public struct CleanCommand { - var packageCommand: PackageCommand - - init(_ packageCommand: PackageCommand) { - self.packageCommand = packageCommand - } - - public func config() -> Configuration { - var c = self.packageCommand.config() - - var args = c.arguments.storage.map(\.description) - - args.append("clean") - - c.arguments = .init(args) - - return c - } - } - - public func _init(_ options: InitCommand.Option...) -> InitCommand { - self._init(options: options) - } - - public func _init(options: [InitCommand.Option]) -> InitCommand { - InitCommand(self, options) - } - - public struct InitCommand { - var packageCommand: PackageCommand - - var options: [Option] - - public enum Option { - case type(String) - case packagePath(FilePath) - - func args() -> [String] { - switch self { - case let .type(type): - return ["--type=\(type)"] - case let .packagePath(packagePath): - return ["--package-path=\(packagePath)"] - } - } - } - - init(_ packageCommand: PackageCommand, _ options: [Option]) { - self.packageCommand = packageCommand - self.options = options - } - - public func config() -> Configuration { - var c = self.packageCommand.config() - - var args = c.arguments.storage.map(\.description) - - args.append("init") - - for opt in self.options { - args.append(contentsOf: opt.args()) - } - - c.arguments = .init(args) - - return c - } - } - } - - public func sdk() -> SdkCommand { - SdkCommand(self) - } - - public struct SdkCommand { - var swift: SwiftCommand - - init(_ swift: SwiftCommand) { - self.swift = swift - } - - public func config() -> Configuration { - var c = self.swift.config() - - var args = c.arguments.storage.map(\.description) - - args.append("sdk") - - c.arguments = .init(args) - - return c - } - - public func install(_ bundlePathOrUrl: String, checksum: String? = nil) -> InstallCommand { - InstallCommand(self, bundlePathOrUrl, checksum: checksum) - } - - public struct InstallCommand { - var sdkCommand: SdkCommand - var bundlePathOrUrl: String - var checksum: String? - - init(_ sdkCommand: SdkCommand, _ bundlePathOrUrl: String, checksum: String?) { - self.sdkCommand = sdkCommand - self.bundlePathOrUrl = bundlePathOrUrl - self.checksum = checksum - } - - public func config() -> Configuration { - var c = self.sdkCommand.config() - - var args = c.arguments.storage.map(\.description) - - args.append("install") - - args.append(self.bundlePathOrUrl) - - if let checksum = self.checksum { - args.append("--checksum=\(checksum)") - } - - c.arguments = .init(args) - - return c - } - } - - public func remove(_ sdkIdOrBundleName: String) -> RemoveCommand { - RemoveCommand(self, sdkIdOrBundleName) - } - - public struct RemoveCommand { - var sdkCommand: SdkCommand - var sdkIdOrBundleName: String - - init(_ sdkCommand: SdkCommand, _ sdkIdOrBundleName: String) { - self.sdkCommand = sdkCommand - self.sdkIdOrBundleName = sdkIdOrBundleName - } - - public func config() -> Configuration { - var c = self.sdkCommand.config() - - var args = c.arguments.storage.map(\.description) - - args.append("remove") - - args.append(self.sdkIdOrBundleName) - - c.arguments = .init(args) - - return c - } - } - } - - public func build(_ options: BuildCommand.Option...) -> BuildCommand { - BuildCommand(self, options) - } - - public struct BuildCommand { - var swift: SwiftCommand - var options: [Option] - - init(_ swift: SwiftCommand, _ options: [Option]) { - self.swift = swift - self.options = options - } - - public func config() -> Configuration { - var c = self.swift.config() - - var args = c.arguments.storage.map(\.description) - - args.append("build") - - for opt in self.options { - args.append(contentsOf: opt.args()) - } - - c.arguments = .init(args) - - return c - } - - public enum Option { - case arch(String) - case configuration(String) - case packagePath(FilePath) - case pkgConfigPath(FilePath) - case product(String) - case swiftSdk(String) - case staticSwiftStdlib - - func args() -> [String] { - switch self { - case let .arch(arch): - return ["--arch=\(arch)"] - case let .configuration(configuration): - return ["--configuration=\(configuration)"] - case let .packagePath(packagePath): - return ["--package-path=\(packagePath)"] - case let .pkgConfigPath(pkgConfigPath): - return ["--pkg-config-path=\(pkgConfigPath)"] - case let .swiftSdk(sdk): - return ["--swift-sdk=\(sdk)"] - case .staticSwiftStdlib: - return ["--static-swift-stdlib"] - case let .product(product): - return ["--product=\(product)"] - } - } - } - } - } -} - -extension SystemCommand.SwiftCommand.PackageCommand.ResetCommand: Runnable {} -extension SystemCommand.SwiftCommand.PackageCommand.CleanCommand: Runnable {} -extension SystemCommand.SwiftCommand.PackageCommand.InitCommand: Runnable {} -extension SystemCommand.SwiftCommand.SdkCommand.InstallCommand: Runnable {} -extension SystemCommand.SwiftCommand.SdkCommand.RemoveCommand: Runnable {} -extension SystemCommand.SwiftCommand.BuildCommand: Runnable {} +extension SystemCommand.swiftCommand.packageCommand.resetCommand: Runnable {} +extension SystemCommand.swiftCommand.packageCommand.cleanCommand: Runnable {} +extension SystemCommand.swiftCommand.packageCommand.initCommand: Runnable {} +extension SystemCommand.swiftCommand.sdkCommand.installCommand: Runnable {} +extension SystemCommand.swiftCommand.sdkCommand.removeCommand: Runnable {} +extension SystemCommand.swiftCommand.buildCommand: Runnable {} extension SystemCommand { // make utility to maintain groups of programs diff --git a/Sources/SwiftlyCore/CommandsNew.swift b/Sources/SwiftlyCore/CommandsNew.swift index 371f36de..6fa900d8 100644 --- a/Sources/SwiftlyCore/CommandsNew.swift +++ b/Sources/SwiftlyCore/CommandsNew.swift @@ -17,13 +17,13 @@ extension SystemCommand { } public func config() -> Configuration { - var args: [String] = [] + var genArgs: [String] = [] - if let datasource = self.datasource { args += [datasource.description] } + if let datasource = self.datasource { genArgs += [datasource.description] } return Configuration( executable: self.executable, - arguments: Arguments(args), + arguments: Arguments(genArgs), environment: .inherit ) } @@ -46,14 +46,14 @@ extension SystemCommand { public func config() -> Configuration { var c = self.parent.config() - var args = c.arguments.storage.map(\.description) + var genArgs = c.arguments.storage.map(\.description) - args.append("-read") + genArgs.append("-read") - if let path = self.path { args += [path.description] } - if let key = self.key { args += key.map(\.description) } + if let path = self.path { genArgs += [path.description] } + if let key = self.key { genArgs += key.map(\.description) } - c.arguments = .init(args) + c.arguments = .init(genArgs) return c } @@ -85,14 +85,14 @@ extension SystemCommand { } public func config() -> Configuration { - var args: [String] = [] + var genArgs: [String] = [] - args += [self.database.description] - args += self.key.map(\.description) + genArgs += [self.database.description] + genArgs += self.key.map(\.description) return Configuration( executable: self.executable, - arguments: Arguments(args), + arguments: Arguments(genArgs), environment: .inherit ) } @@ -132,15 +132,15 @@ extension SystemCommand { } public func config() -> Configuration { - var args: [String] = [] + var genArgs: [String] = [] for opt in self.options { - args.append(contentsOf: opt.args()) + genArgs.append(contentsOf: opt.args()) } return Configuration( executable: self.executable, - arguments: Arguments(args), + arguments: Arguments(genArgs), environment: .inherit ) } @@ -159,11 +159,11 @@ extension SystemCommand { public func config() -> Configuration { var c = self.parent.config() - var args = c.arguments.storage.map(\.description) + var genArgs = c.arguments.storage.map(\.description) - args.append("init") + genArgs.append("init") - c.arguments = .init(args) + c.arguments = .init(genArgs) return c } @@ -206,15 +206,15 @@ extension SystemCommand { public func config() -> Configuration { var c = self.parent.config() - var args = c.arguments.storage.map(\.description) + var genArgs = c.arguments.storage.map(\.description) - args.append("commit") + genArgs.append("commit") for opt in self.options { - args.append(contentsOf: opt.args()) + genArgs.append(contentsOf: opt.args()) } - c.arguments = .init(args) + c.arguments = .init(genArgs) return c } @@ -254,15 +254,15 @@ extension SystemCommand { public func config() -> Configuration { var c = self.parent.config() - var args = c.arguments.storage.map(\.description) + var genArgs = c.arguments.storage.map(\.description) - args.append("log") + genArgs.append("log") for opt in self.options { - args.append(contentsOf: opt.args()) + genArgs.append(contentsOf: opt.args()) } - c.arguments = .init(args) + c.arguments = .init(genArgs) return c } @@ -301,16 +301,16 @@ extension SystemCommand { public func config() -> Configuration { var c = self.parent.config() - var args = c.arguments.storage.map(\.description) + var genArgs = c.arguments.storage.map(\.description) - args.append("diff-index") + genArgs.append("diff-index") for opt in self.options { - args.append(contentsOf: opt.args()) + genArgs.append(contentsOf: opt.args()) } - args += [self.tree_ish.description] + genArgs += [self.tree_ish.description] - c.arguments = .init(args) + c.arguments = .init(genArgs) return c } @@ -340,13 +340,13 @@ extension SystemCommand { } public func config() -> Configuration { - var args: [String] = [] + var genArgs: [String] = [] - args += self.input_file.map(\.description) + genArgs += self.input_file.map(\.description) return Configuration( executable: self.executable, - arguments: Arguments(args), + arguments: Arguments(genArgs), environment: .inherit ) } @@ -382,15 +382,15 @@ extension SystemCommand { public func config() -> Configuration { var c = self.parent.config() - var args = c.arguments.storage.map(\.description) + var genArgs = c.arguments.storage.map(\.description) - args.append("-create") + genArgs.append("-create") for opt in self.options { - args.append(contentsOf: opt.args()) + genArgs.append(contentsOf: opt.args()) } - c.arguments = .init(args) + c.arguments = .init(genArgs) return c } @@ -445,16 +445,16 @@ extension SystemCommand { } public func config() -> Configuration { - var args: [String] = [] + var genArgs: [String] = [] for opt in self.options { - args.append(contentsOf: opt.args()) + genArgs.append(contentsOf: opt.args()) } - args += [self.package_output_path.description] + genArgs += [self.package_output_path.description] return Configuration( executable: self.executable, - arguments: Arguments(args), + arguments: Arguments(genArgs), environment: .inherit ) } @@ -496,22 +496,10123 @@ extension SystemCommand { } public func config() -> Configuration { - var args: [String] = [] + var genArgs: [String] = [] for opt in self.options { - args.append(contentsOf: opt.args()) + genArgs.append(contentsOf: opt.args()) } - args += self.files.map(\.description) + genArgs += self.files.map(\.description) return Configuration( executable: self.executable, - arguments: Arguments(args), + arguments: Arguments(genArgs), environment: .inherit ) } } } +extension SystemCommand { + // Swift compiler + public static func swift(executable: Executable = swiftCommand.defaultExecutable) -> swiftCommand { + swiftCommand(executable: executable) + } + + public struct swiftCommand { + public static var defaultExecutable: Executable { .name("swift") } + public var executable: Executable + + public init(executable: Executable) { + self.executable = executable + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + + // Build sources into binary products + public func build(_ options: buildCommand.Option...) -> buildCommand { + self.build(options) + } + + // Build sources into binary products + public func build(_ options: [buildCommand.Option]) -> buildCommand { + buildCommand(parent: self, options) + } + + public struct buildCommand { + public var parent: swiftCommand + public var options: [Option] + + public enum Option { + case package_path(FilePath) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(FilePath) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case build_tests + case enable_code_coverage + case show_bin_path + case print_manifest_job_graph + case target(String) + case product(String) + case enable_xctest + case enable_swift_testing + case enable_experimental_swift_testing + case traits(String) + case enable_all_traits + case disable_default_traits + case static_swift_stdlib + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .build_tests: + ["--build-tests"] + case .enable_code_coverage: + ["--enable-code-coverage"] + case .show_bin_path: + ["--show-bin-path"] + case .print_manifest_job_graph: + ["--print-manifest-job-graph"] + case let .target(target): + ["--target", String(describing: target)] + case let .product(product): + ["--product", String(describing: product)] + case .enable_xctest: + ["--enable-xctest"] + case .enable_swift_testing: + ["--enable-swift-testing"] + case .enable_experimental_swift_testing: + ["--enable-experimental-swift-testing"] + case let .traits(traits): + ["--traits", String(describing: traits)] + case .enable_all_traits: + ["--enable-all-traits"] + case .disable_default_traits: + ["--disable-default-traits"] + case .static_swift_stdlib: + ["--static-swift-stdlib"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: swiftCommand, _ options: [buildCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("build") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Perform operations on Swift packages + public func package(_ options: packageCommand.Option...) -> packageCommand { + self.package(options) + } + + // Perform operations on Swift packages + public func package(_ options: [packageCommand.Option]) -> packageCommand { + packageCommand(parent: self, options) + } + + public struct packageCommand { + public var parent: swiftCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: swiftCommand, _ options: [packageCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("package") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + + // Add a package dependency to the manifest + public func adddependency(_ options: adddependencyCommand.Option..., dependency: String) -> adddependencyCommand { + self.adddependency(options, dependency: dependency) + } + + // Add a package dependency to the manifest + public func adddependency(_ options: [adddependencyCommand.Option], dependency: String) -> adddependencyCommand { + adddependencyCommand(parent: self, options, dependency: dependency) + } + + public struct adddependencyCommand { + public var parent: packageCommand + public var options: [Option] + public var dependency: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case exact(String) + case revision(String) + case branch(String) + case from(String) + case up_to_next_minor_from(String) + case to(String) + case type(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .exact(exact): + ["--exact", String(describing: exact)] + case let .revision(revision): + ["--revision", String(describing: revision)] + case let .branch(branch): + ["--branch", String(describing: branch)] + case let .from(from): + ["--from", String(describing: from)] + case let .up_to_next_minor_from(up_to_next_minor_from): + ["--up-to-next-minor-from", String(describing: up_to_next_minor_from)] + case let .to(to): + ["--to", String(describing: to)] + case let .type(type): + ["--type", String(describing: type)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [adddependencyCommand.Option], dependency: String) { + self.parent = parent + self.options = options + self.dependency = dependency + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("add-dependency") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.dependency.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Add a new product to the manifest + public func addproduct(_ options: addproductCommand.Option..., name: String) -> addproductCommand { + self.addproduct(options, name: name) + } + + // Add a new product to the manifest + public func addproduct(_ options: [addproductCommand.Option], name: String) -> addproductCommand { + addproductCommand(parent: self, options, name: name) + } + + public struct addproductCommand { + public var parent: packageCommand + public var options: [Option] + public var name: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case type(String) + case targets(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .type(type): + ["--type", String(describing: type)] + case let .targets(targets): + ["--targets", String(describing: targets)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [addproductCommand.Option], name: String) { + self.parent = parent + self.options = options + self.name = name + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("add-product") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.name.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Add a new target to the manifest + public func addtarget(_ options: addtargetCommand.Option..., name: String) -> addtargetCommand { + self.addtarget(options, name: name) + } + + // Add a new target to the manifest + public func addtarget(_ options: [addtargetCommand.Option], name: String) -> addtargetCommand { + addtargetCommand(parent: self, options, name: name) + } + + public struct addtargetCommand { + public var parent: packageCommand + public var options: [Option] + public var name: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case type(String) + case dependencies(String) + case url(String) + case path(String) + case checksum(String) + case testing_library(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .type(type): + ["--type", String(describing: type)] + case let .dependencies(dependencies): + ["--dependencies", String(describing: dependencies)] + case let .url(url): + ["--url", String(describing: url)] + case let .path(path): + ["--path", String(describing: path)] + case let .checksum(checksum): + ["--checksum", String(describing: checksum)] + case let .testing_library(testing_library): + ["--testing-library", String(describing: testing_library)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [addtargetCommand.Option], name: String) { + self.parent = parent + self.options = options + self.name = name + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("add-target") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.name.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Add a new target dependency to the manifest + public func addtargetdependency(_ options: addtargetdependencyCommand.Option..., dependency_name: String, target_name: String) -> addtargetdependencyCommand { + self.addtargetdependency(options, dependency_name: dependency_name, target_name: target_name) + } + + // Add a new target dependency to the manifest + public func addtargetdependency(_ options: [addtargetdependencyCommand.Option], dependency_name: String, target_name: String) -> addtargetdependencyCommand { + addtargetdependencyCommand(parent: self, options, dependency_name: dependency_name, target_name: target_name) + } + + public struct addtargetdependencyCommand { + public var parent: packageCommand + public var options: [Option] + public var dependency_name: String + public var target_name: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case package(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .package(package): + ["--package", String(describing: package)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [addtargetdependencyCommand.Option], dependency_name: String, target_name: String) { + self.parent = parent + self.options = options + self.dependency_name = dependency_name + self.target_name = target_name + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("add-target-dependency") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.dependency_name.description] + genArgs += [self.target_name.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Delete build artifacts + public func clean(_ options: cleanCommand.Option...) -> cleanCommand { + self.clean(options) + } + + // Delete build artifacts + public func clean(_ options: [cleanCommand.Option]) -> cleanCommand { + cleanCommand(parent: self, options) + } + + public struct cleanCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [cleanCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("clean") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Purge the global repository cache. + public func purgecache(_ options: purgecacheCommand.Option...) -> purgecacheCommand { + self.purgecache(options) + } + + // Purge the global repository cache. + public func purgecache(_ options: [purgecacheCommand.Option]) -> purgecacheCommand { + purgecacheCommand(parent: self, options) + } + + public struct purgecacheCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [purgecacheCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("purge-cache") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Reset the complete cache/build directory + public func reset(_ options: resetCommand.Option...) -> resetCommand { + self.reset(options) + } + + // Reset the complete cache/build directory + public func reset(_ options: [resetCommand.Option]) -> resetCommand { + resetCommand(parent: self, options) + } + + public struct resetCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [resetCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("reset") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Update package dependencies + public func update(_ options: updateCommand.Option..., packages: [String]?) -> updateCommand { + self.update(options, packages: packages) + } + + // Update package dependencies + public func update(_ options: [updateCommand.Option], packages: [String]?) -> updateCommand { + updateCommand(parent: self, options, packages: packages) + } + + public struct updateCommand { + public var parent: packageCommand + public var options: [Option] + public var packages: [String]? + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case dry_run + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .dry_run: + ["--dry-run"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [updateCommand.Option], packages: [String]?) { + self.parent = parent + self.options = options + self.packages = packages + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("update") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + if let packages = self.packages { genArgs += packages.map(\.description) } + + c.arguments = .init(genArgs) + + return c + } + } + + // Describe the current package + public func describe(_ options: describeCommand.Option...) -> describeCommand { + self.describe(options) + } + + // Describe the current package + public func describe(_ options: [describeCommand.Option]) -> describeCommand { + describeCommand(parent: self, options) + } + + public struct describeCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case type(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .type(type): + ["--type", String(describing: type)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [describeCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("describe") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Initialize a new package + public func _init(_ options: initCommand.Option...) -> initCommand { + self._init(options) + } + + // Initialize a new package + public func _init(_ options: [initCommand.Option]) -> initCommand { + initCommand(parent: self, options) + } + + public struct initCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(FilePath) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case type(String) + case enable_xctest + case enable_swift_testing + case enable_experimental_swift_testing + case name(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .type(type): + ["--type", String(describing: type)] + case .enable_xctest: + ["--enable-xctest"] + case .enable_swift_testing: + ["--enable-swift-testing"] + case .enable_experimental_swift_testing: + ["--enable-experimental-swift-testing"] + case let .name(name): + ["--name", String(describing: name)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [initCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("init") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + public func _format(_ options: _formatCommand.Option..., swift_format_flags: [String]?) -> _formatCommand { + self._format(options, swift_format_flags: swift_format_flags) + } + + public func _format(_ options: [_formatCommand.Option], swift_format_flags: [String]?) -> _formatCommand { + _formatCommand(parent: self, options, swift_format_flags: swift_format_flags) + } + + public struct _formatCommand { + public var parent: packageCommand + public var options: [Option] + public var swift_format_flags: [String]? + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [_formatCommand.Option], swift_format_flags: [String]?) { + self.parent = parent + self.options = options + self.swift_format_flags = swift_format_flags + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("_format") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + if let swift_format_flags = self.swift_format_flags { genArgs += swift_format_flags.map(\.description) } + + c.arguments = .init(genArgs) + + return c + } + } + + // Offers the ability to install executable products of the current package. + public func experimentalinstall(_ options: experimentalinstallCommand.Option...) -> experimentalinstallCommand { + self.experimentalinstall(options) + } + + // Offers the ability to install executable products of the current package. + public func experimentalinstall(_ options: [experimentalinstallCommand.Option]) -> experimentalinstallCommand { + experimentalinstallCommand(parent: self, options) + } + + public struct experimentalinstallCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case product(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .product(product): + ["--product", String(describing: product)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [experimentalinstallCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("experimental-install") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Offers the ability to uninstall executable products previously installed by `swift package experimental-install`. + public func experimentaluninstall(_ options: experimentaluninstallCommand.Option..., name: String) -> experimentaluninstallCommand { + self.experimentaluninstall(options, name: name) + } + + // Offers the ability to uninstall executable products previously installed by `swift package experimental-install`. + public func experimentaluninstall(_ options: [experimentaluninstallCommand.Option], name: String) -> experimentaluninstallCommand { + experimentaluninstallCommand(parent: self, options, name: name) + } + + public struct experimentaluninstallCommand { + public var parent: packageCommand + public var options: [Option] + public var name: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [experimentaluninstallCommand.Option], name: String) { + self.parent = parent + self.options = options + self.name = name + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("experimental-uninstall") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.name.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Diagnose API-breaking changes to Swift modules in a package + public func diagnoseapibreakingchanges(_ options: diagnoseapibreakingchangesCommand.Option..., treeish: String) -> diagnoseapibreakingchangesCommand { + self.diagnoseapibreakingchanges(options, treeish: treeish) + } + + // Diagnose API-breaking changes to Swift modules in a package + public func diagnoseapibreakingchanges(_ options: [diagnoseapibreakingchangesCommand.Option], treeish: String) -> diagnoseapibreakingchangesCommand { + diagnoseapibreakingchangesCommand(parent: self, options, treeish: treeish) + } + + public struct diagnoseapibreakingchangesCommand { + public var parent: packageCommand + public var options: [Option] + public var treeish: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case breakage_allowlist_path(String) + case products(String) + case targets(String) + case traits(String) + case enable_all_traits + case disable_default_traits + case baseline_dir(String) + case regenerate_baseline + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .breakage_allowlist_path(breakage_allowlist_path): + ["--breakage-allowlist-path", String(describing: breakage_allowlist_path)] + case let .products(products): + ["--products", String(describing: products)] + case let .targets(targets): + ["--targets", String(describing: targets)] + case let .traits(traits): + ["--traits", String(describing: traits)] + case .enable_all_traits: + ["--enable-all-traits"] + case .disable_default_traits: + ["--disable-default-traits"] + case let .baseline_dir(baseline_dir): + ["--baseline-dir", String(describing: baseline_dir)] + case .regenerate_baseline: + ["--regenerate-baseline"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [diagnoseapibreakingchangesCommand.Option], treeish: String) { + self.parent = parent + self.options = options + self.treeish = treeish + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("diagnose-api-breaking-changes") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.treeish.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Deprecated - use `swift package diagnose-api-breaking-changes` instead + public func experimentalapidiff(_ options: experimentalapidiffCommand.Option..., args: [String]?) -> experimentalapidiffCommand { + self.experimentalapidiff(options, args: args) + } + + // Deprecated - use `swift package diagnose-api-breaking-changes` instead + public func experimentalapidiff(_ options: [experimentalapidiffCommand.Option], args: [String]?) -> experimentalapidiffCommand { + experimentalapidiffCommand(parent: self, options, args: args) + } + + public struct experimentalapidiffCommand { + public var parent: packageCommand + public var options: [Option] + public var args: [String]? + + public enum Option { + case version + case help + + public func args() -> [String] { + switch self { + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [experimentalapidiffCommand.Option], args: [String]?) { + self.parent = parent + self.options = options + self.args = args + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("experimental-api-diff") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + if let args = self.args { genArgs += args.map(\.description) } + + c.arguments = .init(genArgs) + + return c + } + } + + // Dump Symbol Graph + public func dumpsymbolgraph(_ options: dumpsymbolgraphCommand.Option...) -> dumpsymbolgraphCommand { + self.dumpsymbolgraph(options) + } + + // Dump Symbol Graph + public func dumpsymbolgraph(_ options: [dumpsymbolgraphCommand.Option]) -> dumpsymbolgraphCommand { + dumpsymbolgraphCommand(parent: self, options) + } + + public struct dumpsymbolgraphCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case pretty_print + case skip_synthesized_members + case minimum_access_level(String) + case skip_inherited_docs + case include_spi_symbols + case emit_extension_block_symbols + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .pretty_print: + ["--pretty-print"] + case .skip_synthesized_members: + ["--skip-synthesized-members"] + case let .minimum_access_level(minimum_access_level): + ["--minimum-access-level", String(describing: minimum_access_level)] + case .skip_inherited_docs: + ["--skip-inherited-docs"] + case .include_spi_symbols: + ["--include-spi-symbols"] + case .emit_extension_block_symbols: + ["--emit-extension-block-symbols"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [dumpsymbolgraphCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("dump-symbol-graph") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + public func dumppif(_ options: dumppifCommand.Option...) -> dumppifCommand { + self.dumppif(options) + } + + public func dumppif(_ options: [dumppifCommand.Option]) -> dumppifCommand { + dumppifCommand(parent: self, options) + } + + public struct dumppifCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case preserve_structure + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .preserve_structure: + ["--preserve-structure"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [dumppifCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("dump-pif") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Print parsed Package.swift as JSON + public func dumppackage(_ options: dumppackageCommand.Option...) -> dumppackageCommand { + self.dumppackage(options) + } + + // Print parsed Package.swift as JSON + public func dumppackage(_ options: [dumppackageCommand.Option]) -> dumppackageCommand { + dumppackageCommand(parent: self, options) + } + + public struct dumppackageCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [dumppackageCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("dump-package") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Put a package in editable mode + public func edit(_ options: editCommand.Option..., package_identity: String) -> editCommand { + self.edit(options, package_identity: package_identity) + } + + // Put a package in editable mode + public func edit(_ options: [editCommand.Option], package_identity: String) -> editCommand { + editCommand(parent: self, options, package_identity: package_identity) + } + + public struct editCommand { + public var parent: packageCommand + public var options: [Option] + public var package_identity: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case revision(String) + case branch(String) + case path(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .revision(revision): + ["--revision", String(describing: revision)] + case let .branch(branch): + ["--branch", String(describing: branch)] + case let .path(path): + ["--path", String(describing: path)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [editCommand.Option], package_identity: String) { + self.parent = parent + self.options = options + self.package_identity = package_identity + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("edit") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.package_identity.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Remove a package from editable mode + public func unedit(_ options: uneditCommand.Option..., package_identity: String) -> uneditCommand { + self.unedit(options, package_identity: package_identity) + } + + // Remove a package from editable mode + public func unedit(_ options: [uneditCommand.Option], package_identity: String) -> uneditCommand { + uneditCommand(parent: self, options, package_identity: package_identity) + } + + public struct uneditCommand { + public var parent: packageCommand + public var options: [Option] + public var package_identity: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case force + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .force: + ["--force"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [uneditCommand.Option], package_identity: String) { + self.parent = parent + self.options = options + self.package_identity = package_identity + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("unedit") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.package_identity.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Manipulate configuration of the package + public func config(_ options: configCommand.Option...) -> configCommand { + self.config(options) + } + + // Manipulate configuration of the package + public func config(_ options: [configCommand.Option]) -> configCommand { + configCommand(parent: self, options) + } + + public struct configCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case version + case help + + public func args() -> [String] { + switch self { + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [configCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("config") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + + // Set a mirror for a dependency + public func setmirror(_ options: setmirrorCommand.Option...) -> setmirrorCommand { + self.setmirror(options) + } + + // Set a mirror for a dependency + public func setmirror(_ options: [setmirrorCommand.Option]) -> setmirrorCommand { + setmirrorCommand(parent: self, options) + } + + public struct setmirrorCommand { + public var parent: configCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case package_url(String) + case original_url(String) + case mirror_url(String) + case original(String) + case mirror(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .package_url(package_url): + ["--package-url", String(describing: package_url)] + case let .original_url(original_url): + ["--original-url", String(describing: original_url)] + case let .mirror_url(mirror_url): + ["--mirror-url", String(describing: mirror_url)] + case let .original(original): + ["--original", String(describing: original)] + case let .mirror(mirror): + ["--mirror", String(describing: mirror)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: configCommand, _ options: [setmirrorCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("set-mirror") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Remove an existing mirror + public func unsetmirror(_ options: unsetmirrorCommand.Option...) -> unsetmirrorCommand { + self.unsetmirror(options) + } + + // Remove an existing mirror + public func unsetmirror(_ options: [unsetmirrorCommand.Option]) -> unsetmirrorCommand { + unsetmirrorCommand(parent: self, options) + } + + public struct unsetmirrorCommand { + public var parent: configCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case package_url(String) + case original_url(String) + case mirror_url(String) + case original(String) + case mirror(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .package_url(package_url): + ["--package-url", String(describing: package_url)] + case let .original_url(original_url): + ["--original-url", String(describing: original_url)] + case let .mirror_url(mirror_url): + ["--mirror-url", String(describing: mirror_url)] + case let .original(original): + ["--original", String(describing: original)] + case let .mirror(mirror): + ["--mirror", String(describing: mirror)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: configCommand, _ options: [unsetmirrorCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("unset-mirror") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Print mirror configuration for the given package dependency + public func getmirror(_ options: getmirrorCommand.Option...) -> getmirrorCommand { + self.getmirror(options) + } + + // Print mirror configuration for the given package dependency + public func getmirror(_ options: [getmirrorCommand.Option]) -> getmirrorCommand { + getmirrorCommand(parent: self, options) + } + + public struct getmirrorCommand { + public var parent: configCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case package_url(String) + case original_url(String) + case original(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .package_url(package_url): + ["--package-url", String(describing: package_url)] + case let .original_url(original_url): + ["--original-url", String(describing: original_url)] + case let .original(original): + ["--original", String(describing: original)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: configCommand, _ options: [getmirrorCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("get-mirror") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + } + + // Resolve package dependencies + public func resolve(_ options: resolveCommand.Option..., package_name: String? = nil) -> resolveCommand { + self.resolve(options, package_name: package_name) + } + + // Resolve package dependencies + public func resolve(_ options: [resolveCommand.Option], package_name: String? = nil) -> resolveCommand { + resolveCommand(parent: self, options, package_name: package_name) + } + + public struct resolveCommand { + public var parent: packageCommand + public var options: [Option] + public var package_name: String? + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version(String) + case branch(String) + case revision(String) + case version2 + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .version(version): + ["--version", String(describing: version)] + case let .branch(branch): + ["--branch", String(describing: branch)] + case let .revision(revision): + ["--revision", String(describing: revision)] + case .version2: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [resolveCommand.Option], package_name: String? = nil) { + self.parent = parent + self.options = options + self.package_name = package_name + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("resolve") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + if let package_name = self.package_name { genArgs += [package_name.description] } + + c.arguments = .init(genArgs) + + return c + } + } + + public func fetch(_ options: fetchCommand.Option..., package_name: String? = nil) -> fetchCommand { + self.fetch(options, package_name: package_name) + } + + public func fetch(_ options: [fetchCommand.Option], package_name: String? = nil) -> fetchCommand { + fetchCommand(parent: self, options, package_name: package_name) + } + + public struct fetchCommand { + public var parent: packageCommand + public var options: [Option] + public var package_name: String? + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version2(String) + case branch(String) + case revision(String) + case version3 + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .version2(version2): + ["--version", String(describing: version2)] + case let .branch(branch): + ["--branch", String(describing: branch)] + case let .revision(revision): + ["--revision", String(describing: revision)] + case .version3: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [fetchCommand.Option], package_name: String? = nil) { + self.parent = parent + self.options = options + self.package_name = package_name + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("fetch") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + if let package_name = self.package_name { genArgs += [package_name.description] } + + c.arguments = .init(genArgs) + + return c + } + } + + // Print the resolved dependency graph + public func showdependencies(_ options: showdependenciesCommand.Option...) -> showdependenciesCommand { + self.showdependencies(options) + } + + // Print the resolved dependency graph + public func showdependencies(_ options: [showdependenciesCommand.Option]) -> showdependenciesCommand { + showdependenciesCommand(parent: self, options) + } + + public struct showdependenciesCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case format(String) + case output_path(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .format(format): + ["--format", String(describing: format)] + case let .output_path(output_path): + ["--output-path", String(describing: output_path)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [showdependenciesCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("show-dependencies") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // List the available executables from this package. + public func showexecutables(_ options: showexecutablesCommand.Option...) -> showexecutablesCommand { + self.showexecutables(options) + } + + // List the available executables from this package. + public func showexecutables(_ options: [showexecutablesCommand.Option]) -> showexecutablesCommand { + showexecutablesCommand(parent: self, options) + } + + public struct showexecutablesCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case format(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .format(format): + ["--format", String(describing: format)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [showexecutablesCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("show-executables") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Manipulate tools version of the current package + public func toolsversion(_ options: toolsversionCommand.Option...) -> toolsversionCommand { + self.toolsversion(options) + } + + // Manipulate tools version of the current package + public func toolsversion(_ options: [toolsversionCommand.Option]) -> toolsversionCommand { + toolsversionCommand(parent: self, options) + } + + public struct toolsversionCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case set_current + case set(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .set_current: + ["--set-current"] + case let .set(set): + ["--set", String(describing: set)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [toolsversionCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("tools-version") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Compute the checksum for a binary artifact. + public func computechecksum(_ options: computechecksumCommand.Option..., path: String) -> computechecksumCommand { + self.computechecksum(options, path: path) + } + + // Compute the checksum for a binary artifact. + public func computechecksum(_ options: [computechecksumCommand.Option], path: String) -> computechecksumCommand { + computechecksumCommand(parent: self, options, path: path) + } + + public struct computechecksumCommand { + public var parent: packageCommand + public var options: [Option] + public var path: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [computechecksumCommand.Option], path: String) { + self.parent = parent + self.options = options + self.path = path + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("compute-checksum") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.path.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Create a source archive for the package + public func archivesource(_ options: archivesourceCommand.Option...) -> archivesourceCommand { + self.archivesource(options) + } + + // Create a source archive for the package + public func archivesource(_ options: [archivesourceCommand.Option]) -> archivesourceCommand { + archivesourceCommand(parent: self, options) + } + + public struct archivesourceCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case output(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .output(output): + ["--output", String(describing: output)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [archivesourceCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("archive-source") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Completion command (for shell completions) + public func completiontool(_ options: completiontoolCommand.Option..., mode: String) -> completiontoolCommand { + self.completiontool(options, mode: mode) + } + + // Completion command (for shell completions) + public func completiontool(_ options: [completiontoolCommand.Option], mode: String) -> completiontoolCommand { + completiontoolCommand(parent: self, options, mode: mode) + } + + public struct completiontoolCommand { + public var parent: packageCommand + public var options: [Option] + public var mode: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [completiontoolCommand.Option], mode: String) { + self.parent = parent + self.options = options + self.mode = mode + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("completion-tool") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.mode.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Invoke a command plugin or perform other actions on command plugins + public func plugin(_ options: pluginCommand.Option..., command: String? = nil, arguments: [String]?) -> pluginCommand { + self.plugin(options, command: command, arguments: arguments) + } + + // Invoke a command plugin or perform other actions on command plugins + public func plugin(_ options: [pluginCommand.Option], command: String? = nil, arguments: [String]?) -> pluginCommand { + pluginCommand(parent: self, options, command: command, arguments: arguments) + } + + public struct pluginCommand { + public var parent: packageCommand + public var options: [Option] + public var command: String? + public var arguments: [String]? + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case list + case allow_writing_to_package_directory + case allow_writing_to_directory(String) + case allow_network_connections(String) + case package(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .list: + ["--list"] + case .allow_writing_to_package_directory: + ["--allow-writing-to-package-directory"] + case let .allow_writing_to_directory(allow_writing_to_directory): + ["--allow-writing-to-directory", String(describing: allow_writing_to_directory)] + case let .allow_network_connections(allow_network_connections): + ["--allow-network-connections", String(describing: allow_network_connections)] + case let .package(package): + ["--package", String(describing: package)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [pluginCommand.Option], command: String? = nil, arguments: [String]?) { + self.parent = parent + self.options = options + self.command = command + self.arguments = arguments + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("plugin") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + if let command = self.command { genArgs += [command.description] } + if let arguments = self.arguments { genArgs += arguments.map(\.description) } + + c.arguments = .init(genArgs) + + return c + } + } + + public func defaultcommand(_ options: defaultcommandCommand.Option..., remaining: [String]?) -> defaultcommandCommand { + self.defaultcommand(options, remaining: remaining) + } + + public func defaultcommand(_ options: [defaultcommandCommand.Option], remaining: [String]?) -> defaultcommandCommand { + defaultcommandCommand(parent: self, options, remaining: remaining) + } + + public struct defaultcommandCommand { + public var parent: packageCommand + public var options: [Option] + public var remaining: [String]? + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case allow_writing_to_package_directory + case allow_writing_to_directory(String) + case allow_network_connections(String) + case package(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .allow_writing_to_package_directory: + ["--allow-writing-to-package-directory"] + case let .allow_writing_to_directory(allow_writing_to_directory): + ["--allow-writing-to-directory", String(describing: allow_writing_to_directory)] + case let .allow_network_connections(allow_network_connections): + ["--allow-network-connections", String(describing: allow_network_connections)] + case let .package(package): + ["--package", String(describing: package)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [defaultcommandCommand.Option], remaining: [String]?) { + self.parent = parent + self.options = options + self.remaining = remaining + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("default-command") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + if let remaining = self.remaining { genArgs += remaining.map(\.description) } + + c.arguments = .init(genArgs) + + return c + } + } + } + + // Perform operations on Swift SDKs. + public func sdk(_ options: sdkCommand.Option...) -> sdkCommand { + self.sdk(options) + } + + // Perform operations on Swift SDKs. + public func sdk(_ options: [sdkCommand.Option]) -> sdkCommand { + sdkCommand(parent: self, options) + } + + public struct sdkCommand { + public var parent: swiftCommand + public var options: [Option] + + public enum Option { + case version + case help + + public func args() -> [String] { + switch self { + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: swiftCommand, _ options: [sdkCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("sdk") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + + // Manages configuration options for installed Swift SDKs. + public func configure(_ options: configureCommand.Option..., sdk_id: String, target_triple: String) -> configureCommand { + self.configure(options, sdk_id: sdk_id, target_triple: target_triple) + } + + // Manages configuration options for installed Swift SDKs. + public func configure(_ options: [configureCommand.Option], sdk_id: String, target_triple: String) -> configureCommand { + configureCommand(parent: self, options, sdk_id: sdk_id, target_triple: target_triple) + } + + public struct configureCommand { + public var parent: sdkCommand + public var options: [Option] + public var sdk_id: String + public var target_triple: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case sdk_root_path(String) + case swift_resources_path(String) + case swift_static_resources_path(String) + case include_search_path(String) + case library_search_path(String) + case toolset_path(String) + case reset + case show_configuration + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case let .sdk_root_path(sdk_root_path): + ["--sdk-root-path", String(describing: sdk_root_path)] + case let .swift_resources_path(swift_resources_path): + ["--swift-resources-path", String(describing: swift_resources_path)] + case let .swift_static_resources_path(swift_static_resources_path): + ["--swift-static-resources-path", String(describing: swift_static_resources_path)] + case let .include_search_path(include_search_path): + ["--include-search-path", String(describing: include_search_path)] + case let .library_search_path(library_search_path): + ["--library-search-path", String(describing: library_search_path)] + case let .toolset_path(toolset_path): + ["--toolset-path", String(describing: toolset_path)] + case .reset: + ["--reset"] + case .show_configuration: + ["--show-configuration"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: sdkCommand, _ options: [configureCommand.Option], sdk_id: String, target_triple: String) { + self.parent = parent + self.options = options + self.sdk_id = sdk_id + self.target_triple = target_triple + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("configure") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.sdk_id.description] + genArgs += [self.target_triple.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Deprecated: use `swift sdk configure` instead.Manages configuration options for installed Swift SDKs. + public func configuration(_ options: configurationCommand.Option...) -> configurationCommand { + self.configuration(options) + } + + // Deprecated: use `swift sdk configure` instead.Manages configuration options for installed Swift SDKs. + public func configuration(_ options: [configurationCommand.Option]) -> configurationCommand { + configurationCommand(parent: self, options) + } + + public struct configurationCommand { + public var parent: sdkCommand + public var options: [Option] + + public enum Option { + case version + case help + + public func args() -> [String] { + switch self { + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: sdkCommand, _ options: [configurationCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("configuration") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + + // Resets configuration properties currently applied to a given Swift SDK and target triple. If no specific property is specified, all of them are reset for the Swift SDK. + public func reset(_ options: resetCommand.Option..., sdk_id: String, target_triple: String) -> resetCommand { + self.reset(options, sdk_id: sdk_id, target_triple: target_triple) + } + + // Resets configuration properties currently applied to a given Swift SDK and target triple. If no specific property is specified, all of them are reset for the Swift SDK. + public func reset(_ options: [resetCommand.Option], sdk_id: String, target_triple: String) -> resetCommand { + resetCommand(parent: self, options, sdk_id: sdk_id, target_triple: target_triple) + } + + public struct resetCommand { + public var parent: configurationCommand + public var options: [Option] + public var sdk_id: String + public var target_triple: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case sdk_root_path + case swift_resources_path + case swift_static_resources_path + case include_search_path + case library_search_path + case toolset_path + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .sdk_root_path: + ["--sdk-root-path"] + case .swift_resources_path: + ["--swift-resources-path"] + case .swift_static_resources_path: + ["--swift-static-resources-path"] + case .include_search_path: + ["--include-search-path"] + case .library_search_path: + ["--library-search-path"] + case .toolset_path: + ["--toolset-path"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: configurationCommand, _ options: [resetCommand.Option], sdk_id: String, target_triple: String) { + self.parent = parent + self.options = options + self.sdk_id = sdk_id + self.target_triple = target_triple + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("reset") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.sdk_id.description] + genArgs += [self.target_triple.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Sets configuration options for installed Swift SDKs. + public func set(_ options: setCommand.Option..., sdk_id: String, target_triple: String) -> setCommand { + self.set(options, sdk_id: sdk_id, target_triple: target_triple) + } + + // Sets configuration options for installed Swift SDKs. + public func set(_ options: [setCommand.Option], sdk_id: String, target_triple: String) -> setCommand { + setCommand(parent: self, options, sdk_id: sdk_id, target_triple: target_triple) + } + + public struct setCommand { + public var parent: configurationCommand + public var options: [Option] + public var sdk_id: String + public var target_triple: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case sdk_root_path(String) + case swift_resources_path(String) + case swift_static_resources_path(String) + case include_search_path(String) + case library_search_path(String) + case toolset_path(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case let .sdk_root_path(sdk_root_path): + ["--sdk-root-path", String(describing: sdk_root_path)] + case let .swift_resources_path(swift_resources_path): + ["--swift-resources-path", String(describing: swift_resources_path)] + case let .swift_static_resources_path(swift_static_resources_path): + ["--swift-static-resources-path", String(describing: swift_static_resources_path)] + case let .include_search_path(include_search_path): + ["--include-search-path", String(describing: include_search_path)] + case let .library_search_path(library_search_path): + ["--library-search-path", String(describing: library_search_path)] + case let .toolset_path(toolset_path): + ["--toolset-path", String(describing: toolset_path)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: configurationCommand, _ options: [setCommand.Option], sdk_id: String, target_triple: String) { + self.parent = parent + self.options = options + self.sdk_id = sdk_id + self.target_triple = target_triple + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("set") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.sdk_id.description] + genArgs += [self.target_triple.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Prints all configuration properties currently applied to a given Swift SDK and target triple. + public func show(_ options: showCommand.Option..., sdk_id: String, target_triple: String) -> showCommand { + self.show(options, sdk_id: sdk_id, target_triple: target_triple) + } + + // Prints all configuration properties currently applied to a given Swift SDK and target triple. + public func show(_ options: [showCommand.Option], sdk_id: String, target_triple: String) -> showCommand { + showCommand(parent: self, options, sdk_id: sdk_id, target_triple: target_triple) + } + + public struct showCommand { + public var parent: configurationCommand + public var options: [Option] + public var sdk_id: String + public var target_triple: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: configurationCommand, _ options: [showCommand.Option], sdk_id: String, target_triple: String) { + self.parent = parent + self.options = options + self.sdk_id = sdk_id + self.target_triple = target_triple + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("show") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.sdk_id.description] + genArgs += [self.target_triple.description] + + c.arguments = .init(genArgs) + + return c + } + } + } + + // Installs a given Swift SDK bundle to a location discoverable by SwiftPM. If the artifact bundle is at a remote location, it's downloaded to local filesystem first. + public func install(_ options: installCommand.Option..., bundle_path_or_url: String) -> installCommand { + self.install(options, bundle_path_or_url: bundle_path_or_url) + } + + // Installs a given Swift SDK bundle to a location discoverable by SwiftPM. If the artifact bundle is at a remote location, it's downloaded to local filesystem first. + public func install(_ options: [installCommand.Option], bundle_path_or_url: String) -> installCommand { + installCommand(parent: self, options, bundle_path_or_url: bundle_path_or_url) + } + + public struct installCommand { + public var parent: sdkCommand + public var options: [Option] + public var bundle_path_or_url: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case checksum(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case let .checksum(checksum): + ["--checksum", String(describing: checksum)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: sdkCommand, _ options: [installCommand.Option], bundle_path_or_url: String) { + self.parent = parent + self.options = options + self.bundle_path_or_url = bundle_path_or_url + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("install") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.bundle_path_or_url.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Print a list of IDs of available Swift SDKs available on the filesystem. + public func list(_ options: listCommand.Option...) -> listCommand { + self.list(options) + } + + // Print a list of IDs of available Swift SDKs available on the filesystem. + public func list(_ options: [listCommand.Option]) -> listCommand { + listCommand(parent: self, options) + } + + public struct listCommand { + public var parent: sdkCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: sdkCommand, _ options: [listCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("list") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Removes a previously installed Swift SDK bundle from the filesystem. + public func remove(_ options: removeCommand.Option..., sdk_id_or_bundle_name: String) -> removeCommand { + self.remove(options, sdk_id_or_bundle_name: sdk_id_or_bundle_name) + } + + // Removes a previously installed Swift SDK bundle from the filesystem. + public func remove(_ options: [removeCommand.Option], sdk_id_or_bundle_name: String) -> removeCommand { + removeCommand(parent: self, options, sdk_id_or_bundle_name: sdk_id_or_bundle_name) + } + + public struct removeCommand { + public var parent: sdkCommand + public var options: [Option] + public var sdk_id_or_bundle_name: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: sdkCommand, _ options: [removeCommand.Option], sdk_id_or_bundle_name: String) { + self.parent = parent + self.options = options + self.sdk_id_or_bundle_name = sdk_id_or_bundle_name + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("remove") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.sdk_id_or_bundle_name.description] + + c.arguments = .init(genArgs) + + return c + } + } + } + } +} + extension SystemCommand { // manipulate tape archives. See tar(1) for more information. public static func tar(executable: Executable = tarCommand.defaultExecutable, _ options: tarCommand.Option...) -> tarCommand { @@ -545,15 +10646,15 @@ extension SystemCommand { } public func config() -> Configuration { - var args: [String] = [] + var genArgs: [String] = [] for opt in self.options { - args.append(contentsOf: opt.args()) + genArgs.append(contentsOf: opt.args()) } return Configuration( executable: self.executable, - arguments: Arguments(args), + arguments: Arguments(genArgs), environment: .inherit ) } @@ -597,16 +10698,16 @@ extension SystemCommand { public func config() -> Configuration { var c = self.parent.config() - var args = c.arguments.storage.map(\.description) + var genArgs = c.arguments.storage.map(\.description) - args.append("--create") + genArgs.append("--create") for opt in self.options { - args.append(contentsOf: opt.args()) + genArgs.append(contentsOf: opt.args()) } - if let files = self.files { args += files.map(\.description) } + if let files = self.files { genArgs += files.map(\.description) } - c.arguments = .init(args) + c.arguments = .init(genArgs) return c } @@ -649,15 +10750,15 @@ extension SystemCommand { public func config() -> Configuration { var c = self.parent.config() - var args = c.arguments.storage.map(\.description) + var genArgs = c.arguments.storage.map(\.description) - args.append("--extract") + genArgs.append("--extract") for opt in self.options { - args.append(contentsOf: opt.args()) + genArgs.append(contentsOf: opt.args()) } - c.arguments = .init(args) + c.arguments = .init(genArgs) return c } diff --git a/Sources/SwiftlyCore/swift-ext.json b/Sources/SwiftlyCore/swift-ext.json new file mode 100644 index 00000000..de4276b3 --- /dev/null +++ b/Sources/SwiftlyCore/swift-ext.json @@ -0,0 +1,16 @@ +{ + "arguments": [ + { + "path": "build.pkg-config-path", + "type": "file" + }, + { + "path": "package.init.package-path", + "type": "file" + }, + { + "path": "build.package-path", + "type": "file" + } + ] +} diff --git a/Sources/SwiftlyCore/swift.json b/Sources/SwiftlyCore/swift.json new file mode 100644 index 00000000..01166034 --- /dev/null +++ b/Sources/SwiftlyCore/swift.json @@ -0,0 +1,52259 @@ +{ + "serializationVersion": 0, + "command": { + "commandName": "swift", + "abstract": "Swift compiler", + "subcommands": [ + { + "abstract": "Build sources into binary products", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Build both source and test targets", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "build-tests" + } + ], + "preferredName": { + "kind": "long", + "name": "build-tests" + }, + "shouldDisplay": true, + "valueName": "build-tests" + }, + { + "abstract": "Enable code coverage", + "defaultValue": "--disable-code-coverage", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-code-coverage" + }, + { + "kind": "long", + "name": "disable-code-coverage" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-code-coverage" + }, + "shouldDisplay": true, + "valueName": "enable-code-coverage" + }, + { + "abstract": "Print the binary output path", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "show-bin-path" + } + ], + "preferredName": { + "kind": "long", + "name": "show-bin-path" + }, + "shouldDisplay": true, + "valueName": "show-bin-path" + }, + { + "abstract": "Write the command graph for the build manifest as a graphviz file", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "print-manifest-job-graph" + } + ], + "preferredName": { + "kind": "long", + "name": "print-manifest-job-graph" + }, + "shouldDisplay": true, + "valueName": "print-manifest-job-graph" + }, + { + "abstract": "Build the specified target", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "target" + } + ], + "preferredName": { + "kind": "long", + "name": "target" + }, + "shouldDisplay": true, + "valueName": "target" + }, + { + "abstract": "Build the specified product", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "product" + } + ], + "preferredName": { + "kind": "long", + "name": "product" + }, + "shouldDisplay": true, + "valueName": "product" + }, + { + "abstract": "Enable support for XCTest", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-xctest" + }, + { + "kind": "long", + "name": "disable-xctest" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-xctest" + }, + "shouldDisplay": true, + "valueName": "enable-xctest" + }, + { + "abstract": "Enable support for Swift Testing", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-swift-testing" + }, + { + "kind": "long", + "name": "disable-swift-testing" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-swift-testing" + }, + "shouldDisplay": true, + "valueName": "enable-swift-testing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-swift-testing" + }, + { + "kind": "long", + "name": "disable-experimental-swift-testing" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-swift-testing" + }, + "shouldDisplay": false, + "valueName": "enable-experimental-swift-testing" + }, + { + "abstract": "Enables the passed traits of the package. Multiple traits can be specified by providing a comma separated list e.g. `--traits Trait1,Trait2`. When enabling specific traits the defaults traits need to explictily enabled as well by passing `defaults` to this command.", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "traits" + } + ], + "preferredName": { + "kind": "long", + "name": "traits" + }, + "shouldDisplay": true, + "valueName": "traits" + }, + { + "abstract": "Enables all traits of the package.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-all-traits" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-all-traits" + }, + "shouldDisplay": true, + "valueName": "enable-all-traits" + }, + { + "abstract": "Disables all default traits of the package.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-default-traits" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-default-traits" + }, + "shouldDisplay": true, + "valueName": "disable-default-traits" + }, + { + "abstract": "Link Swift stdlib statically", + "defaultValue": "--no-static-swift-stdlib", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "static-swift-stdlib" + }, + { + "kind": "long", + "name": "no-static-swift-stdlib" + } + ], + "preferredName": { + "kind": "long", + "name": "static-swift-stdlib" + }, + "shouldDisplay": true, + "valueName": "static-swift-stdlib" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "build", + "superCommands": [ + "swift" + ], + "discussion": "SEE ALSO: swift run, swift package, swift test" + }, + { + "abstract": "Perform operations on Swift packages", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "package", + "superCommands": [ + "swift" + ], + "discussion": "SEE ALSO: swift build, swift run, swift test", + "subcommands": [ + { + "abstract": "Add a package dependency to the manifest", + "arguments": [ + { + "abstract": "The URL or directory of the package to add", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "dependency" + }, + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "The exact package version to depend on", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "exact" + } + ], + "preferredName": { + "kind": "long", + "name": "exact" + }, + "shouldDisplay": true, + "valueName": "exact" + }, + { + "abstract": "The specific package revision to depend on", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "revision" + } + ], + "preferredName": { + "kind": "long", + "name": "revision" + }, + "shouldDisplay": true, + "valueName": "revision" + }, + { + "abstract": "The branch of the package to depend on", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "branch" + } + ], + "preferredName": { + "kind": "long", + "name": "branch" + }, + "shouldDisplay": true, + "valueName": "branch" + }, + { + "abstract": "The package version to depend on (up to the next major version)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "from" + } + ], + "preferredName": { + "kind": "long", + "name": "from" + }, + "shouldDisplay": true, + "valueName": "from" + }, + { + "abstract": "The package version to depend on (up to the next minor version)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "up-to-next-minor-from" + } + ], + "preferredName": { + "kind": "long", + "name": "up-to-next-minor-from" + }, + "shouldDisplay": true, + "valueName": "up-to-next-minor-from" + }, + { + "abstract": "Specify upper bound on the package version range (exclusive)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "to" + } + ], + "preferredName": { + "kind": "long", + "name": "to" + }, + "shouldDisplay": true, + "valueName": "to" + }, + { + "abstract": "Specify dependency type", + "allValues": [ + "url", + "path", + "registry" + ], + "defaultValue": "url", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "type" + } + ], + "preferredName": { + "kind": "long", + "name": "type" + }, + "shouldDisplay": true, + "valueName": "type" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "add-dependency", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Add a new product to the manifest", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "The name of the new product", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "name" + }, + { + "abstract": "The type of target to add", + "allValues": [ + "executable", + "library", + "static-library", + "dynamic-library", + "plugin" + ], + "defaultValue": "library", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "type" + } + ], + "preferredName": { + "kind": "long", + "name": "type" + }, + "shouldDisplay": true, + "valueName": "type" + }, + { + "abstract": "A list of targets that are part of this product", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "targets" + } + ], + "preferredName": { + "kind": "long", + "name": "targets" + }, + "shouldDisplay": true, + "valueName": "targets" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "add-product", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Add a new target to the manifest", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "The name of the new target", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "name" + }, + { + "abstract": "The type of target to add", + "allValues": [ + "library", + "executable", + "test", + "macro" + ], + "defaultValue": "library", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "type" + } + ], + "preferredName": { + "kind": "long", + "name": "type" + }, + "shouldDisplay": true, + "valueName": "type" + }, + { + "abstract": "A list of target dependency names", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "dependencies" + } + ], + "preferredName": { + "kind": "long", + "name": "dependencies" + }, + "shouldDisplay": true, + "valueName": "dependencies" + }, + { + "abstract": "The URL for a remote binary target", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "url" + } + ], + "preferredName": { + "kind": "long", + "name": "url" + }, + "shouldDisplay": true, + "valueName": "url" + }, + { + "abstract": "The path to a local binary target", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "path" + } + ], + "preferredName": { + "kind": "long", + "name": "path" + }, + "shouldDisplay": true, + "valueName": "path" + }, + { + "abstract": "The checksum for a remote binary target", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "checksum" + } + ], + "preferredName": { + "kind": "long", + "name": "checksum" + }, + "shouldDisplay": true, + "valueName": "checksum" + }, + { + "abstract": "The testing library to use when generating test targets, which can be one of 'xctest', 'swift-testing', or 'none'", + "defaultValue": "xctest", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "testing-library" + } + ], + "preferredName": { + "kind": "long", + "name": "testing-library" + }, + "shouldDisplay": true, + "valueName": "testing-library" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "add-target", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Add a new target dependency to the manifest", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "The name of the new dependency", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "dependency-name" + }, + { + "abstract": "The name of the target to update", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "target-name" + }, + { + "abstract": "The package in which the dependency resides", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package" + } + ], + "preferredName": { + "kind": "long", + "name": "package" + }, + "shouldDisplay": true, + "valueName": "package" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "add-target-dependency", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Delete build artifacts", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "clean", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Purge the global repository cache.", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "purge-cache", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Reset the complete cache/build directory", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "reset", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Update package dependencies", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Display the list of dependencies that can be updated", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "dry-run" + }, + { + "kind": "short", + "name": "n" + } + ], + "preferredName": { + "kind": "long", + "name": "dry-run" + }, + "shouldDisplay": true, + "valueName": "dry-run" + }, + { + "abstract": "The packages to update", + "isOptional": true, + "isRepeating": true, + "kind": "positional", + "shouldDisplay": true, + "valueName": "packages" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "update", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Describe the current package", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Set the output format", + "allValues": [ + "json", + "text", + "mermaid" + ], + "defaultValue": "text", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "type" + } + ], + "preferredName": { + "kind": "long", + "name": "type" + }, + "shouldDisplay": true, + "valueName": "type" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "describe", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Initialize a new package", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Package type:", + "defaultValue": "library", + "discussion": "library - A package with a library.\nexecutable - A package with an executable.\ntool - A package with an executable that uses\n Swift Argument Parser. Use this template if you\n plan to have a rich set of command-line arguments.\nbuild-tool-plugin - A package that vends a build tool plugin.\ncommand-plugin - A package that vends a command plugin.\nmacro - A package that vends a macro.\nempty - An empty package with a Package.swift manifest.", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "type" + } + ], + "preferredName": { + "kind": "long", + "name": "type" + }, + "shouldDisplay": true, + "valueName": "type" + }, + { + "abstract": "Enable support for XCTest", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-xctest" + }, + { + "kind": "long", + "name": "disable-xctest" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-xctest" + }, + "shouldDisplay": true, + "valueName": "enable-xctest" + }, + { + "abstract": "Enable support for Swift Testing", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-swift-testing" + }, + { + "kind": "long", + "name": "disable-swift-testing" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-swift-testing" + }, + "shouldDisplay": true, + "valueName": "enable-swift-testing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-swift-testing" + }, + { + "kind": "long", + "name": "disable-experimental-swift-testing" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-swift-testing" + }, + "shouldDisplay": false, + "valueName": "enable-experimental-swift-testing" + }, + { + "abstract": "Provide custom package name", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "name" + } + ], + "preferredName": { + "kind": "long", + "name": "name" + }, + "shouldDisplay": true, + "valueName": "name" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "init", + "superCommands": [ + "swift", + "package" + ] + }, + { + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Pass flag through to the swift-format tool", + "isOptional": true, + "isRepeating": true, + "kind": "positional", + "shouldDisplay": true, + "valueName": "swift-format-flags" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "_format", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Offers the ability to install executable products of the current package.", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "The name of the executable product to install", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "product" + } + ], + "preferredName": { + "kind": "long", + "name": "product" + }, + "shouldDisplay": true, + "valueName": "product" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "experimental-install", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Offers the ability to uninstall executable products previously installed by `swift package experimental-install`.", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Name of the executable to uninstall.", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "name" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "experimental-uninstall", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Diagnose API-breaking changes to Swift modules in a package", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "The path to a text file containing breaking changes which should be ignored by the API comparison. Each ignored breaking change in the file should appear on its own line and contain the exact message to be ignored (e.g. 'API breakage: func foo() has been removed').", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "breakage-allowlist-path" + } + ], + "preferredName": { + "kind": "long", + "name": "breakage-allowlist-path" + }, + "shouldDisplay": true, + "valueName": "breakage-allowlist-path" + }, + { + "abstract": "The baseline treeish to compare to (e.g. a commit hash, branch name, tag, etc.)", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "treeish" + }, + { + "abstract": "One or more products to include in the API comparison. If present, only the specified products (and any targets specified using `--targets`) will be compared.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "products" + } + ], + "preferredName": { + "kind": "long", + "name": "products" + }, + "shouldDisplay": true, + "valueName": "products" + }, + { + "abstract": "One or more targets to include in the API comparison. If present, only the specified targets (and any products specified using `--products`) will be compared.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "targets" + } + ], + "preferredName": { + "kind": "long", + "name": "targets" + }, + "shouldDisplay": true, + "valueName": "targets" + }, + { + "abstract": "Enables the passed traits of the package. Multiple traits can be specified by providing a comma separated list e.g. `--traits Trait1,Trait2`. When enabling specific traits the defaults traits need to explictily enabled as well by passing `defaults` to this command.", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "traits" + } + ], + "preferredName": { + "kind": "long", + "name": "traits" + }, + "shouldDisplay": true, + "valueName": "traits" + }, + { + "abstract": "Enables all traits of the package.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-all-traits" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-all-traits" + }, + "shouldDisplay": true, + "valueName": "enable-all-traits" + }, + { + "abstract": "Disables all default traits of the package.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-default-traits" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-default-traits" + }, + "shouldDisplay": true, + "valueName": "disable-default-traits" + }, + { + "abstract": "The path to a directory used to store API baseline files. If unspecified, a temporary directory will be used.", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "baseline-dir" + } + ], + "preferredName": { + "kind": "long", + "name": "baseline-dir" + }, + "shouldDisplay": true, + "valueName": "baseline-dir" + }, + { + "abstract": "Regenerate the API baseline, even if an existing one is available.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "regenerate-baseline" + } + ], + "preferredName": { + "kind": "long", + "name": "regenerate-baseline" + }, + "shouldDisplay": true, + "valueName": "regenerate-baseline" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "diagnose-api-breaking-changes", + "discussion": "The diagnose-api-breaking-changes command can be used to compare the Swift API of a package to a baseline revision, diagnosing any breaking changes which have been introduced. By default, it compares every Swift module from the baseline revision which is part of a library product. For packages with many targets, this behavior may be undesirable as the comparison can be slow. The `--products` and `--targets` options may be used to restrict the scope of the comparison.", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Deprecated - use `swift package diagnose-api-breaking-changes` instead", + "arguments": [ + { + "isOptional": true, + "isRepeating": true, + "kind": "positional", + "shouldDisplay": true, + "valueName": "args" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "experimental-api-diff", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Dump Symbol Graph", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Pretty-print the output JSON.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "pretty-print" + } + ], + "preferredName": { + "kind": "long", + "name": "pretty-print" + }, + "shouldDisplay": true, + "valueName": "pretty-print" + }, + { + "abstract": "Skip members inherited through classes or default implementations.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-synthesized-members" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-synthesized-members" + }, + "shouldDisplay": true, + "valueName": "skip-synthesized-members" + }, + { + "abstract": "Include symbols with this access level or more. Possible values: private | fileprivate | internal | public | open", + "allValues": [ + "private", + "fileprivate", + "internal", + "public", + "open" + ], + "defaultValue": "public", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "minimum-access-level" + } + ], + "preferredName": { + "kind": "long", + "name": "minimum-access-level" + }, + "shouldDisplay": true, + "valueName": "minimum-access-level" + }, + { + "abstract": "Skip emitting doc comments for members inherited through classes or default implementations.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-inherited-docs" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-inherited-docs" + }, + "shouldDisplay": true, + "valueName": "skip-inherited-docs" + }, + { + "abstract": "Add symbols with SPI information to the symbol graph.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "include-spi-symbols" + } + ], + "preferredName": { + "kind": "long", + "name": "include-spi-symbols" + }, + "shouldDisplay": true, + "valueName": "include-spi-symbols" + }, + { + "abstract": "Emit extension block symbols for extensions to external types or directly associate members and conformances with the extended nominal.", + "defaultValue": "--omit-extension-block-symbols", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "emit-extension-block-symbols" + }, + { + "kind": "long", + "name": "omit-extension-block-symbols" + } + ], + "preferredName": { + "kind": "long", + "name": "emit-extension-block-symbols" + }, + "shouldDisplay": true, + "valueName": "emit-extension-block-symbols" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "dump-symbol-graph", + "superCommands": [ + "swift", + "package" + ] + }, + { + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Preserve the internal structure of PIF", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "preserve-structure" + } + ], + "preferredName": { + "kind": "long", + "name": "preserve-structure" + }, + "shouldDisplay": true, + "valueName": "preserve-structure" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "dump-pif", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Print parsed Package.swift as JSON", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "dump-package", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Put a package in editable mode", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "The revision to edit", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "revision" + } + ], + "preferredName": { + "kind": "long", + "name": "revision" + }, + "shouldDisplay": true, + "valueName": "revision" + }, + { + "abstract": "The branch to create", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "branch" + } + ], + "preferredName": { + "kind": "long", + "name": "branch" + }, + "shouldDisplay": true, + "valueName": "branch" + }, + { + "abstract": "Create or use the checkout at this path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "path" + } + ], + "preferredName": { + "kind": "long", + "name": "path" + }, + "shouldDisplay": true, + "valueName": "path" + }, + { + "abstract": "The identity of the package to edit", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "package-identity" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "edit", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Remove a package from editable mode", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Unedit the package even if it has uncommitted and unpushed changes", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force" + } + ], + "preferredName": { + "kind": "long", + "name": "force" + }, + "shouldDisplay": true, + "valueName": "force" + }, + { + "abstract": "The identity of the package to unedit", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "package-identity" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "unedit", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Manipulate configuration of the package", + "arguments": [ + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "config", + "subcommands": [ + { + "abstract": "Set a mirror for a dependency", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-url" + } + ], + "preferredName": { + "kind": "long", + "name": "package-url" + }, + "shouldDisplay": false, + "valueName": "package-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "original-url" + } + ], + "preferredName": { + "kind": "long", + "name": "original-url" + }, + "shouldDisplay": false, + "valueName": "original-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "mirror-url" + } + ], + "preferredName": { + "kind": "long", + "name": "mirror-url" + }, + "shouldDisplay": false, + "valueName": "mirror-url" + }, + { + "abstract": "The original url or identity", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "original" + } + ], + "preferredName": { + "kind": "long", + "name": "original" + }, + "shouldDisplay": true, + "valueName": "original" + }, + { + "abstract": "The mirror url or identity", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "mirror" + } + ], + "preferredName": { + "kind": "long", + "name": "mirror" + }, + "shouldDisplay": true, + "valueName": "mirror" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "set-mirror", + "superCommands": [ + "swift", + "package", + "config" + ] + }, + { + "abstract": "Remove an existing mirror", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-url" + } + ], + "preferredName": { + "kind": "long", + "name": "package-url" + }, + "shouldDisplay": false, + "valueName": "package-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "original-url" + } + ], + "preferredName": { + "kind": "long", + "name": "original-url" + }, + "shouldDisplay": false, + "valueName": "original-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "mirror-url" + } + ], + "preferredName": { + "kind": "long", + "name": "mirror-url" + }, + "shouldDisplay": false, + "valueName": "mirror-url" + }, + { + "abstract": "The original url or identity", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "original" + } + ], + "preferredName": { + "kind": "long", + "name": "original" + }, + "shouldDisplay": true, + "valueName": "original" + }, + { + "abstract": "The mirror url or identity", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "mirror" + } + ], + "preferredName": { + "kind": "long", + "name": "mirror" + }, + "shouldDisplay": true, + "valueName": "mirror" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "unset-mirror", + "superCommands": [ + "swift", + "package", + "config" + ] + }, + { + "abstract": "Print mirror configuration for the given package dependency", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-url" + } + ], + "preferredName": { + "kind": "long", + "name": "package-url" + }, + "shouldDisplay": false, + "valueName": "package-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "original-url" + } + ], + "preferredName": { + "kind": "long", + "name": "original-url" + }, + "shouldDisplay": false, + "valueName": "original-url" + }, + { + "abstract": "The original url or identity", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "original" + } + ], + "preferredName": { + "kind": "long", + "name": "original" + }, + "shouldDisplay": true, + "valueName": "original" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "get-mirror", + "superCommands": [ + "swift", + "package", + "config" + ] + } + ], + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Resolve package dependencies", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "The version to resolve at", + "isOptional": false, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "The branch to resolve at", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "branch" + } + ], + "preferredName": { + "kind": "long", + "name": "branch" + }, + "shouldDisplay": true, + "valueName": "branch" + }, + { + "abstract": "The revision to resolve at", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "revision" + } + ], + "preferredName": { + "kind": "long", + "name": "revision" + }, + "shouldDisplay": true, + "valueName": "revision" + }, + { + "abstract": "The name of the package to resolve", + "isOptional": true, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "package-name" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version2" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "resolve", + "superCommands": [ + "swift", + "package" + ] + }, + { + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "The version to resolve at", + "isOptional": false, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version2" + }, + { + "abstract": "The branch to resolve at", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "branch" + } + ], + "preferredName": { + "kind": "long", + "name": "branch" + }, + "shouldDisplay": true, + "valueName": "branch" + }, + { + "abstract": "The revision to resolve at", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "revision" + } + ], + "preferredName": { + "kind": "long", + "name": "revision" + }, + "shouldDisplay": true, + "valueName": "revision" + }, + { + "abstract": "The name of the package to resolve", + "isOptional": true, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "package-name" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version3" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "fetch", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Print the resolved dependency graph", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Set the output format", + "allValues": [ + "text", + "dot", + "json", + "flatlist" + ], + "defaultValue": "text", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "format" + } + ], + "preferredName": { + "kind": "long", + "name": "format" + }, + "shouldDisplay": true, + "valueName": "format" + }, + { + "abstract": "The absolute or relative path to output the resolved dependency graph.", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "output-path" + }, + { + "kind": "short", + "name": "o" + } + ], + "preferredName": { + "kind": "long", + "name": "output-path" + }, + "shouldDisplay": true, + "valueName": "output-path" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "show-dependencies", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "List the available executables from this package.", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Set the output format.", + "allValues": [ + "flatlist", + "json" + ], + "defaultValue": "flatlist", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "format" + } + ], + "preferredName": { + "kind": "long", + "name": "format" + }, + "shouldDisplay": true, + "valueName": "format" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "show-executables", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Manipulate tools version of the current package", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Set tools version of package to the current tools version in use", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "set-current" + } + ], + "preferredName": { + "kind": "long", + "name": "set-current" + }, + "shouldDisplay": true, + "valueName": "set-current" + }, + { + "abstract": "Set tools version of package to the given value", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "set" + } + ], + "preferredName": { + "kind": "long", + "name": "set" + }, + "shouldDisplay": true, + "valueName": "set" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "tools-version", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Compute the checksum for a binary artifact.", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "The absolute or relative path to the binary artifact", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "path" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "compute-checksum", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Create a source archive for the package", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "The absolute or relative path for the generated source archive", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "short", + "name": "o" + }, + { + "kind": "long", + "name": "output" + } + ], + "preferredName": { + "kind": "long", + "name": "output" + }, + "shouldDisplay": true, + "valueName": "output" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "archive-source", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Completion command (for shell completions)", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Type of completions to list", + "allValues": [ + "generate-bash-script", + "generate-zsh-script", + "generate-fish-script", + "list-dependencies", + "list-executables", + "list-snippets" + ], + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "mode" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "completion-tool", + "superCommands": [ + "swift", + "package" + ] + }, + { + "abstract": "Invoke a command plugin or perform other actions on command plugins", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "List the available command plugins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "list" + } + ], + "preferredName": { + "kind": "long", + "name": "list" + }, + "shouldDisplay": true, + "valueName": "list" + }, + { + "abstract": "Allow the plugin to write to the package directory", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "allow-writing-to-package-directory" + } + ], + "preferredName": { + "kind": "long", + "name": "allow-writing-to-package-directory" + }, + "shouldDisplay": true, + "valueName": "allow-writing-to-package-directory" + }, + { + "abstract": "Allow the plugin to write to an additional directory", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "allow-writing-to-directory" + } + ], + "preferredName": { + "kind": "long", + "name": "allow-writing-to-directory" + }, + "shouldDisplay": true, + "valueName": "allow-writing-to-directory" + }, + { + "allValues": [ + "none", + "local(ports: [])", + "all(ports: [])", + "docker", + "unixDomainSocket" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "allow-network-connections" + } + ], + "preferredName": { + "kind": "long", + "name": "allow-network-connections" + }, + "shouldDisplay": true, + "valueName": "allow-network-connections" + }, + { + "abstract": "Limit available plugins to a single package with the given identity", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package" + } + ], + "preferredName": { + "kind": "long", + "name": "package" + }, + "shouldDisplay": true, + "valueName": "package" + }, + { + "abstract": "Verb of the command plugin to invoke", + "isOptional": true, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "command" + }, + { + "abstract": "Arguments to pass to the command plugin", + "isOptional": true, + "isRepeating": true, + "kind": "positional", + "shouldDisplay": true, + "valueName": "arguments" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "plugin", + "superCommands": [ + "swift", + "package" + ] + }, + { + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Use a shared cache when fetching dependencies", + "defaultValue": "--enable-dependency-cache", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dependency-cache" + }, + { + "kind": "long", + "name": "disable-dependency-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dependency-cache" + }, + "shouldDisplay": true, + "valueName": "enable-dependency-cache" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-package-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-package-manifest-caching" + }, + "shouldDisplay": false, + "valueName": "disable-package-manifest-caching" + }, + { + "defaultValue": "--enable-build-manifest-caching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + { + "kind": "long", + "name": "disable-build-manifest-caching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-build-manifest-caching" + }, + "shouldDisplay": true, + "valueName": "enable-build-manifest-caching" + }, + { + "abstract": "Caching mode of Package.swift manifests (shared: shared cache, local: package's build directory, none: disabled)", + "defaultValue": "shared", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "manifest-cache" + } + ], + "preferredName": { + "kind": "long", + "name": "manifest-cache" + }, + "shouldDisplay": true, + "valueName": "manifest-cache" + }, + { + "abstract": "Whether to use prebuilt swift-syntax libraries for macros", + "defaultValue": "--disable-experimental-prebuilts", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + { + "kind": "long", + "name": "disable-experimental-prebuilts" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-experimental-prebuilts" + }, + "shouldDisplay": true, + "valueName": "enable-experimental-prebuilts" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-download-url" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-download-url" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-download-url" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prebuilts-root-cert" + }, + "shouldDisplay": false, + "valueName": "experimental-prebuilts-root-cert" + }, + { + "abstract": "Increase verbosity to include informational output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "verbose" + }, + { + "kind": "short", + "name": "v" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "shouldDisplay": true, + "valueName": "verbose" + }, + { + "abstract": "Increase verbosity to include debug output", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "very-verbose" + }, + { + "kind": "long", + "name": "vv" + } + ], + "preferredName": { + "kind": "long", + "name": "very-verbose" + }, + "shouldDisplay": true, + "valueName": "very-verbose" + }, + { + "abstract": "Decrease verbosity to only include error output.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "quiet" + }, + { + "kind": "short", + "name": "q" + } + ], + "preferredName": { + "kind": "long", + "name": "quiet" + }, + "shouldDisplay": true, + "valueName": "quiet" + }, + { + "abstract": "Disable using the sandbox when executing subprocesses", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-sandbox" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-sandbox" + }, + "shouldDisplay": true, + "valueName": "disable-sandbox" + }, + { + "abstract": "Use netrc file even in cases where other credential stores are preferred", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc" + }, + "shouldDisplay": true, + "valueName": "netrc" + }, + { + "abstract": "Load credentials from a netrc file", + "defaultValue": "--enable-netrc", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-netrc" + }, + { + "kind": "long", + "name": "disable-netrc" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-netrc" + }, + "shouldDisplay": true, + "valueName": "enable-netrc" + }, + { + "abstract": "Specify the netrc file path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "netrc-file" + } + ], + "preferredName": { + "kind": "long", + "name": "netrc-file" + }, + "shouldDisplay": true, + "valueName": "netrc-file" + }, + { + "abstract": "Search credentials in macOS keychain", + "defaultValue": "--enable-keychain", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-keychain" + }, + { + "kind": "long", + "name": "disable-keychain" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-keychain" + }, + "shouldDisplay": true, + "valueName": "enable-keychain" + }, + { + "defaultValue": "strict", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-fingerprint-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-fingerprint-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-fingerprint-checking" + }, + { + "defaultValue": "warn", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "resolver-signing-entity-checking" + } + ], + "preferredName": { + "kind": "long", + "name": "resolver-signing-entity-checking" + }, + "shouldDisplay": true, + "valueName": "resolver-signing-entity-checking" + }, + { + "abstract": "Validate signature of a signed package release downloaded from registry", + "defaultValue": "--enable-signature-validation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-signature-validation" + }, + { + "kind": "long", + "name": "disable-signature-validation" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-signature-validation" + }, + "shouldDisplay": true, + "valueName": "enable-signature-validation" + }, + { + "defaultValue": "--enable-prefetching", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-prefetching" + }, + { + "kind": "long", + "name": "disable-prefetching" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-prefetching" + }, + "shouldDisplay": true, + "valueName": "enable-prefetching" + }, + { + "abstract": "Only use versions from the Package.resolved file and fail resolution if it is out-of-date", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "force-resolved-versions" + }, + { + "kind": "long", + "name": "disable-automatic-resolution" + }, + { + "kind": "long", + "name": "only-use-versions-from-resolved-file" + } + ], + "preferredName": { + "kind": "long", + "name": "force-resolved-versions" + }, + "shouldDisplay": true, + "valueName": "force-resolved-versions" + }, + { + "abstract": "Skip updating dependencies from their remote during a resolution", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "skip-update" + } + ], + "preferredName": { + "kind": "long", + "name": "skip-update" + }, + "shouldDisplay": true, + "valueName": "skip-update" + }, + { + "abstract": "disable source control to registry transformation", + "defaultValue": "--disable-scm-to-registry-transformation", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-scm-to-registry-transformation" + }, + "shouldDisplay": true, + "valueName": "disable-scm-to-registry-transformation" + }, + { + "abstract": "look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-registry-identity-for-scm" + } + ], + "preferredName": { + "kind": "long", + "name": "use-registry-identity-for-scm" + }, + "shouldDisplay": true, + "valueName": "use-registry-identity-for-scm" + }, + { + "abstract": "look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "replace-scm-with-registry" + } + ], + "preferredName": { + "kind": "long", + "name": "replace-scm-with-registry" + }, + "shouldDisplay": true, + "valueName": "replace-scm-with-registry" + }, + { + "abstract": "Default registry URL to use, instead of the registries.json configuration file", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "default-registry-url" + } + ], + "preferredName": { + "kind": "long", + "name": "default-registry-url" + }, + "shouldDisplay": true, + "valueName": "default-registry-url" + }, + { + "abstract": "Build with configuration", + "allValues": [ + "debug", + "release" + ], + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "configuration" + }, + { + "kind": "short", + "name": "c" + } + ], + "preferredName": { + "kind": "long", + "name": "configuration" + }, + "shouldDisplay": true, + "valueName": "configuration" + }, + { + "abstract": "Pass flag through to all C compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcc" + }, + "shouldDisplay": true, + "valueName": "Xcc" + }, + { + "abstract": "Pass flag through to all Swift compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xswiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xswiftc" + }, + "shouldDisplay": true, + "valueName": "Xswiftc" + }, + { + "abstract": "Pass flag through to all linker invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xlinker" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xlinker" + }, + "shouldDisplay": true, + "valueName": "Xlinker" + }, + { + "abstract": "Pass flag through to all C++ compiler invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xcxx" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xcxx" + }, + "shouldDisplay": true, + "valueName": "Xcxx" + }, + { + "abstract": "Pass flag through to the Xcode build system invocations", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xxcbuild" + }, + "shouldDisplay": false, + "valueName": "Xxcbuild" + }, + { + "abstract": "Pass flag to Swift compiler invocations for build-time executables (manifest and plugins)", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xbuild-tools-swiftc" + }, + "shouldDisplay": false, + "valueName": "Xbuild-tools-swiftc" + }, + { + "abstract": "Pass flag to the manifest build invocation. Deprecated: use '-Xbuild-tools-swiftc' instead", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "Xmanifest" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "Xmanifest" + }, + "shouldDisplay": false, + "valueName": "Xmanifest" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "triple" + } + ], + "preferredName": { + "kind": "long", + "name": "triple" + }, + "shouldDisplay": true, + "valueName": "triple" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk" + }, + "shouldDisplay": true, + "valueName": "sdk" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolchain" + } + ], + "preferredName": { + "kind": "long", + "name": "toolchain" + }, + "shouldDisplay": true, + "valueName": "toolchain" + }, + { + "abstract": "Build the package for the these architectures", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "arch" + } + ], + "preferredName": { + "kind": "long", + "name": "arch" + }, + "shouldDisplay": false, + "valueName": "arch" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdk" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdk" + }, + { + "abstract": "Filter for selecting a specific Swift SDK to build with", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdk" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdk" + }, + "shouldDisplay": true, + "valueName": "swift-sdk" + }, + { + "abstract": "Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo", + "allValues": [ + "address", + "thread", + "undefined", + "scudo" + ], + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sanitize" + } + ], + "preferredName": { + "kind": "long", + "name": "sanitize" + }, + "shouldDisplay": true, + "valueName": "sanitize" + }, + { + "abstract": "Enable or disable indexing-while-building feature", + "defaultValue": "--auto-index-store", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "auto-index-store" + }, + { + "kind": "long", + "name": "enable-index-store" + }, + { + "kind": "long", + "name": "disable-index-store" + } + ], + "preferredName": { + "kind": "long", + "name": "auto-index-store" + }, + "shouldDisplay": true, + "valueName": "auto-index-store" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-prepare-for-indexing-no-lazy" + }, + "shouldDisplay": false, + "valueName": "experimental-prepare-for-indexing-no-lazy" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-parseable-module-interfaces" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-parseable-module-interfaces" + }, + "shouldDisplay": true, + "valueName": "enable-parseable-module-interfaces" + }, + { + "abstract": "The number of jobs to spawn in parallel during the build process", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "jobs" + }, + { + "kind": "short", + "name": "j" + } + ], + "preferredName": { + "kind": "long", + "name": "jobs" + }, + "shouldDisplay": true, + "valueName": "jobs" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "use-integrated-swift-driver" + } + ], + "preferredName": { + "kind": "long", + "name": "use-integrated-swift-driver" + }, + "shouldDisplay": true, + "valueName": "use-integrated-swift-driver" + }, + { + "abstract": "A flag that indicates this build should check whether targets only import their explicitly-declared dependencies", + "allValues": [ + "none", + "warn", + "error" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "explicit-target-dependency-import-check" + } + ], + "preferredName": { + "kind": "long", + "name": "explicit-target-dependency-import-check" + }, + "shouldDisplay": true, + "valueName": "explicit-target-dependency-import-check" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "experimental-explicit-module-build" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-explicit-module-build" + }, + "shouldDisplay": true, + "valueName": "experimental-explicit-module-build" + }, + { + "allValues": [ + "native", + "xcode" + ], + "defaultValue": "native", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-system" + } + ], + "preferredName": { + "kind": "long", + "name": "build-system" + }, + "shouldDisplay": true, + "valueName": "build-system" + }, + { + "abstract": "The Debug Information Format to use", + "allValues": [ + "dwarf", + "codeview", + "none" + ], + "defaultValue": "dwarf", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "longWithSingleDash", + "name": "debug-info-format" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "debug-info-format" + }, + "shouldDisplay": true, + "valueName": "debug-info-format" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-test-discovery" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-test-discovery" + }, + "shouldDisplay": false, + "valueName": "enable-test-discovery" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-test-entry-point-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-test-entry-point-path" + }, + "shouldDisplay": false, + "valueName": "experimental-test-entry-point-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-lto-mode" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-lto-mode" + }, + "shouldDisplay": false, + "valueName": "experimental-lto-mode" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + { + "kind": "long", + "name": "disable-get-task-allow-entitlement" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-get-task-allow-entitlement" + }, + "shouldDisplay": false, + "valueName": "enable-get-task-allow-entitlement" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "omit-frame-pointers" + }, + { + "kind": "long", + "name": "no-omit-frame-pointers" + } + ], + "preferredName": { + "kind": "long", + "name": "omit-frame-pointers" + }, + "shouldDisplay": false, + "valueName": "omit-frame-pointers" + }, + { + "abstract": "Disable/enable dead code stripping by the linker", + "defaultValue": "--enable-dead-strip", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "enable-dead-strip" + }, + { + "kind": "long", + "name": "disable-dead-strip" + } + ], + "preferredName": { + "kind": "long", + "name": "enable-dead-strip" + }, + "shouldDisplay": true, + "valueName": "enable-dead-strip" + }, + { + "abstract": "Disable adding $ORIGIN/@loader_path to the rpath by default", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "disable-local-rpath" + } + ], + "preferredName": { + "kind": "long", + "name": "disable-local-rpath" + }, + "shouldDisplay": true, + "valueName": "disable-local-rpath" + }, + { + "abstract": "Allow the plugin to write to the package directory", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "allow-writing-to-package-directory" + } + ], + "preferredName": { + "kind": "long", + "name": "allow-writing-to-package-directory" + }, + "shouldDisplay": true, + "valueName": "allow-writing-to-package-directory" + }, + { + "abstract": "Allow the plugin to write to an additional directory", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "allow-writing-to-directory" + } + ], + "preferredName": { + "kind": "long", + "name": "allow-writing-to-directory" + }, + "shouldDisplay": true, + "valueName": "allow-writing-to-directory" + }, + { + "allValues": [ + "none", + "local(ports: [])", + "all(ports: [])", + "docker", + "unixDomainSocket" + ], + "defaultValue": "none", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "allow-network-connections" + } + ], + "preferredName": { + "kind": "long", + "name": "allow-network-connections" + }, + "shouldDisplay": true, + "valueName": "allow-network-connections" + }, + { + "abstract": "Limit available plugins to a single package with the given identity", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package" + } + ], + "preferredName": { + "kind": "long", + "name": "package" + }, + "shouldDisplay": true, + "valueName": "package" + }, + { + "isOptional": true, + "isRepeating": true, + "kind": "positional", + "shouldDisplay": true, + "valueName": "remaining" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "default-command", + "superCommands": [ + "swift", + "package" + ] + } + ] + }, + { + "abstract": "Perform operations on Swift SDKs.", + "arguments": [ + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "sdk", + "superCommands": [ + "swift" + ], + "subcommands": [ + { + "abstract": "Manages configuration options for installed Swift SDKs.", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "A path to a directory containing the SDK root.", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk-root-path" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk-root-path" + }, + "shouldDisplay": true, + "valueName": "sdk-root-path" + }, + { + "abstract": "A path to a directory containing Swift resources for dynamic linking.", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-resources-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-resources-path" + }, + "shouldDisplay": true, + "valueName": "swift-resources-path" + }, + { + "abstract": "A path to a directory containing Swift resources for static linking.", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-static-resources-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-static-resources-path" + }, + "shouldDisplay": true, + "valueName": "swift-static-resources-path" + }, + { + "abstract": "A path to a directory containing headers. Multiple paths can be specified by providing this option multiple times to the command.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "include-search-path" + } + ], + "preferredName": { + "kind": "long", + "name": "include-search-path" + }, + "shouldDisplay": true, + "valueName": "include-search-path" + }, + { + "abstract": "\"A path to a directory containing libraries. Multiple paths can be specified by providing this option multiple times to the command.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "library-search-path" + } + ], + "preferredName": { + "kind": "long", + "name": "library-search-path" + }, + "shouldDisplay": true, + "valueName": "library-search-path" + }, + { + "abstract": "\"A path to a toolset file. Multiple paths can be specified by providing this option multiple times to the command.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset-path" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset-path" + }, + "shouldDisplay": true, + "valueName": "toolset-path" + }, + { + "abstract": "Resets configuration properties currently applied to a given Swift SDK and target triple. If no specific property is specified, all of them are reset for the Swift SDK.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "reset" + } + ], + "preferredName": { + "kind": "long", + "name": "reset" + }, + "shouldDisplay": true, + "valueName": "reset" + }, + { + "abstract": "Prints all configuration properties currently applied to a given Swift SDK and target triple.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "show-configuration" + } + ], + "preferredName": { + "kind": "long", + "name": "show-configuration" + }, + "shouldDisplay": true, + "valueName": "show-configuration" + }, + { + "abstract": "An identifier of an already installed Swift SDK. Use the `list` subcommand to see all available identifiers.", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "sdk-id" + }, + { + "abstract": "The target triple of the Swift SDK to configure.", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "target-triple" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "configure", + "superCommands": [ + "swift", + "sdk" + ] + }, + { + "abstract": "Deprecated: use `swift sdk configure` instead.\n\nManages configuration options for installed Swift SDKs.", + "arguments": [ + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "configuration", + "subcommands": [ + { + "abstract": "Resets configuration properties currently applied to a given Swift SDK and target triple. If no specific property is specified, all of them are reset for the Swift SDK.", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Reset custom configuration for a path to a directory containing the SDK root.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "sdk-root-path" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk-root-path" + }, + "shouldDisplay": true, + "valueName": "sdk-root-path" + }, + { + "abstract": "Reset custom configuration for a path to a directory containing Swift resources for dynamic linking.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "swift-resources-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-resources-path" + }, + "shouldDisplay": true, + "valueName": "swift-resources-path" + }, + { + "abstract": "Reset custom configuration for a path to a directory containing Swift resources for static linking.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "swift-static-resources-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-static-resources-path" + }, + "shouldDisplay": true, + "valueName": "swift-static-resources-path" + }, + { + "abstract": "Reset custom configuration for a path to a directory containing headers.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "include-search-path" + } + ], + "preferredName": { + "kind": "long", + "name": "include-search-path" + }, + "shouldDisplay": true, + "valueName": "include-search-path" + }, + { + "abstract": "Reset custom configuration for a path to a directory containing libraries.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "library-search-path" + } + ], + "preferredName": { + "kind": "long", + "name": "library-search-path" + }, + "shouldDisplay": true, + "valueName": "library-search-path" + }, + { + "abstract": "Reset custom configuration for a path to a toolset file.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "toolset-path" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset-path" + }, + "shouldDisplay": true, + "valueName": "toolset-path" + }, + { + "abstract": "An identifier of an already installed Swift SDK. Use the `list` subcommand to see all available identifiers.", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "sdk-id" + }, + { + "abstract": "A target triple of the Swift SDK specified by `sdk-id` identifier string.", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "target-triple" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "reset", + "superCommands": [ + "swift", + "sdk", + "configuration" + ] + }, + { + "abstract": "Sets configuration options for installed Swift SDKs.", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "A path to a directory containing the SDK root.", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "sdk-root-path" + } + ], + "preferredName": { + "kind": "long", + "name": "sdk-root-path" + }, + "shouldDisplay": true, + "valueName": "sdk-root-path" + }, + { + "abstract": "A path to a directory containing Swift resources for dynamic linking.", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-resources-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-resources-path" + }, + "shouldDisplay": true, + "valueName": "swift-resources-path" + }, + { + "abstract": "A path to a directory containing Swift resources for static linking.", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-static-resources-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-static-resources-path" + }, + "shouldDisplay": true, + "valueName": "swift-static-resources-path" + }, + { + "abstract": "A path to a directory containing headers. Multiple paths can be specified by providing this option multiple times to the command.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "include-search-path" + } + ], + "preferredName": { + "kind": "long", + "name": "include-search-path" + }, + "shouldDisplay": true, + "valueName": "include-search-path" + }, + { + "abstract": "\"A path to a directory containing libraries. Multiple paths can be specified by providing this option multiple times to the command.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "library-search-path" + } + ], + "preferredName": { + "kind": "long", + "name": "library-search-path" + }, + "shouldDisplay": true, + "valueName": "library-search-path" + }, + { + "abstract": "\"A path to a toolset file. Multiple paths can be specified by providing this option multiple times to the command.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset-path" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset-path" + }, + "shouldDisplay": true, + "valueName": "toolset-path" + }, + { + "abstract": "An identifier of an already installed Swift SDK. Use the `list` subcommand to see all available identifiers.", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "sdk-id" + }, + { + "abstract": "The target triple of the Swift SDK to configure.", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "target-triple" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "set", + "superCommands": [ + "swift", + "sdk", + "configuration" + ] + }, + { + "abstract": "Prints all configuration properties currently applied to a given Swift SDK and target triple.", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "An identifier of an already installed Swift SDK. Use the `list` subcommand to see all available identifiers.", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "sdk-id" + }, + { + "abstract": "The target triple of the Swift SDK to configure.", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "target-triple" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "show", + "superCommands": [ + "swift", + "sdk", + "configuration" + ] + } + ], + "superCommands": [ + "swift", + "sdk" + ] + }, + { + "abstract": "Installs a given Swift SDK bundle to a location discoverable by SwiftPM. If the artifact bundle is at a remote location, it's downloaded to local filesystem first.", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "A local filesystem path or a URL of a Swift SDK bundle to install.", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "bundle-path-or-url" + }, + { + "abstract": "The checksum of the bundle generated with `swift package compute-checksum`.", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "checksum" + } + ], + "preferredName": { + "kind": "long", + "name": "checksum" + }, + "shouldDisplay": true, + "valueName": "checksum" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "install", + "superCommands": [ + "swift", + "sdk" + ] + }, + { + "abstract": "Print a list of IDs of available Swift SDKs available on the filesystem.", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "list", + "superCommands": [ + "swift", + "sdk" + ] + }, + { + "abstract": "Removes a previously installed Swift SDK bundle from the filesystem.", + "arguments": [ + { + "abstract": "Specify the package path to operate on (default current directory). This changes the working directory before any other operation", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "shouldDisplay": true, + "valueName": "package-path" + }, + { + "abstract": "Specify the shared cache directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "cache-path" + } + ], + "preferredName": { + "kind": "long", + "name": "cache-path" + }, + "shouldDisplay": true, + "valueName": "cache-path" + }, + { + "abstract": "Specify the shared configuration directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "config-path" + }, + "shouldDisplay": true, + "valueName": "config-path" + }, + { + "abstract": "Specify the shared security directory path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "security-path" + } + ], + "preferredName": { + "kind": "long", + "name": "security-path" + }, + "shouldDisplay": true, + "valueName": "security-path" + }, + { + "abstract": "Specify a custom scratch directory path (default .build)", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "scratch-path" + } + ], + "preferredName": { + "kind": "long", + "name": "scratch-path" + }, + "shouldDisplay": true, + "valueName": "scratch-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "build-path" + } + ], + "preferredName": { + "kind": "long", + "name": "build-path" + }, + "shouldDisplay": false, + "valueName": "build-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "multiroot-data-file" + } + ], + "preferredName": { + "kind": "long", + "name": "multiroot-data-file" + }, + "shouldDisplay": false, + "valueName": "multiroot-data-file" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "destination" + } + ], + "preferredName": { + "kind": "long", + "name": "destination" + }, + "shouldDisplay": false, + "valueName": "destination" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "experimental-swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "experimental-swift-sdks-path" + }, + "shouldDisplay": false, + "valueName": "experimental-swift-sdks-path" + }, + { + "abstract": "Path to the directory containing installed Swift SDKs", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "swift-sdks-path" + } + ], + "preferredName": { + "kind": "long", + "name": "swift-sdks-path" + }, + "shouldDisplay": true, + "valueName": "swift-sdks-path" + }, + { + "abstract": "Specify a toolset JSON file to use when building for the target platform. Use the option multiple times to specify more than one toolset. Toolsets will be merged in the order they're specified into a single final toolset for the current build.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "toolset" + } + ], + "preferredName": { + "kind": "long", + "name": "toolset" + }, + "shouldDisplay": true, + "valueName": "toolset" + }, + { + "abstract": "Specify alternative path to search for pkg-config `.pc` files. Use the option multiple times to\nspecify more than one path.", + "isOptional": true, + "isRepeating": true, + "kind": "option", + "names": [ + { + "kind": "long", + "name": "pkg-config-path" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg-config-path" + }, + "shouldDisplay": true, + "valueName": "pkg-config-path" + }, + { + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "ignore-lock" + } + ], + "preferredName": { + "kind": "long", + "name": "ignore-lock" + }, + "shouldDisplay": false, + "valueName": "ignore-lock" + }, + { + "abstract": "Name of the Swift SDK bundle or ID of the Swift SDK to remove from the filesystem.", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true, + "valueName": "sdk-id-or-bundle-name" + }, + { + "abstract": "Show the version.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "long", + "name": "version" + } + ], + "preferredName": { + "kind": "long", + "name": "version" + }, + "shouldDisplay": true, + "valueName": "version" + }, + { + "abstract": "Show help information.", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "names": [ + { + "kind": "longWithSingleDash", + "name": "help" + }, + { + "kind": "short", + "name": "h" + }, + { + "kind": "long", + "name": "help" + } + ], + "preferredName": { + "kind": "longWithSingleDash", + "name": "help" + }, + "shouldDisplay": true, + "valueName": "help" + } + ], + "commandName": "remove", + "superCommands": [ + "swift", + "sdk" + ] + } + ] + } + ] + } +} diff --git a/Tests/SwiftlyTests/CommandLineTests.swift b/Tests/SwiftlyTests/CommandLineTests.swift index 5f376897..e7683f97 100644 --- a/Tests/SwiftlyTests/CommandLineTests.swift +++ b/Tests/SwiftlyTests/CommandLineTests.swift @@ -169,14 +169,14 @@ public struct CommandLineTests { config = sys.swift().package().clean().config() #expect(String(describing: config) == "swift package clean") - config = sys.swift().sdk().install("path/to/bundle", checksum: "deadbeef").config() - #expect(String(describing: config) == "swift sdk install path/to/bundle --checksum=deadbeef") + config = sys.swift().sdk().install(.checksum("deadbeef"), bundle_path_or_url: "path/to/bundle").config() + #expect(String(describing: config) == "swift sdk install --checksum deadbeef path/to/bundle") - config = sys.swift().sdk().remove("some.bundle").config() + config = sys.swift().sdk().remove([], sdk_id_or_bundle_name: "some.bundle").config() #expect(String(describing: config) == "swift sdk remove some.bundle") - config = sys.swift().build(.arch("x86_64"), .configuration("release"), .pkgConfigPath("path/to/pc"), .swiftSdk("sdk.id"), .staticSwiftStdlib, .product("product1")).config() - #expect(String(describing: config) == "swift build --arch=x86_64 --configuration=release --pkg-config-path=path/to/pc --swift-sdk=sdk.id --static-swift-stdlib --product=product1") + config = sys.swift().build(.arch("x86_64"), .configuration("release"), .pkg_config_path("path/to/pc"), .swift_sdk("sdk.id"), .static_swift_stdlib, .product("product1")).config() + #expect(String(describing: config) == "swift build --arch x86_64 --configuration release --pkg-config-path path/to/pc --swift-sdk sdk.id --static-swift-stdlib --product product1") config = sys.swift().build().config() #expect(String(describing: config) == "swift build") @@ -185,14 +185,14 @@ public struct CommandLineTests { @Test( .tags(.medium), .enabled { - try await sys.SwiftCommand.defaultExecutable.exists() + try await sys.swiftCommand.defaultExecutable.exists() } ) func testSwift() async throws { let tmp = fs.mktemp() try await fs.mkdir(atPath: tmp) - try await sys.swift().package()._init(.packagePath(tmp), .type("executable")).run(Swiftly.currentPlatform) - try await sys.swift().build(.packagePath(tmp), .configuration("release")) + try await sys.swift().package()._init(.package_path(tmp), .type("executable")).run(Swiftly.currentPlatform) + try await sys.swift().build(.package_path(tmp), .configuration("release")) } @Test func testMake() async throws { diff --git a/Tools/build-swiftly-release/BuildSwiftlyRelease.swift b/Tools/build-swiftly-release/BuildSwiftlyRelease.swift index d68e5d70..2aa45b3f 100644 --- a/Tools/build-swiftly-release/BuildSwiftlyRelease.swift +++ b/Tools/build-swiftly-release/BuildSwiftlyRelease.swift @@ -198,7 +198,7 @@ struct BuildSwiftlyRelease: AsyncParsableCommand { throw Error(message: "Swift release \(swiftVersion) has no Static SDK offering") } - try await sys.swift().sdk().install("https://download.swift.org/swift-\(swiftVersion)-release/static-sdk/swift-\(swiftVersion)-RELEASE/swift-\(swiftVersion)-RELEASE_static-linux-0.0.1.artifactbundle.tar.gz", checksum: sdkPlatform.checksum ?? "deadbeef").run(currentPlatform) + try await sys.swift().sdk().install(.checksum(sdkPlatform.checksum ?? "deadbeef"), bundle_path_or_url: "https://download.swift.org/swift-\(swiftVersion)-release/static-sdk/swift-\(swiftVersion)-RELEASE/swift-\(swiftVersion)-RELEASE_static-linux-0.0.1.artifactbundle.tar.gz").run(currentPlatform) var customEnv = ProcessInfo.processInfo.environment customEnv["CC"] = "\(cwd)/Tools/build-swiftly-release/musl-clang" @@ -232,7 +232,7 @@ struct BuildSwiftlyRelease: AsyncParsableCommand { FileManager.default.changeCurrentDirectoryPath(cwd.string) - try await sys.swift().build(.swiftSdk("\(arch)-swift-linux-musl"), .product("swiftly"), .pkgConfigPath(pkgConfigPath / "lib/pkgconfig"), .staticSwiftStdlib, .configuration("release")).run(currentPlatform) + try await sys.swift().build(.swift_sdk("\(arch)-swift-linux-musl"), .product("swiftly"), .pkg_config_path(pkgConfigPath / "lib/pkgconfig"), .static_swift_stdlib, .configuration("release")).run(currentPlatform) let releaseDir = cwd / ".build/release" @@ -260,13 +260,13 @@ struct BuildSwiftlyRelease: AsyncParsableCommand { let testArchive = debugDir / "test-swiftly-linux-x86_64.tar.gz" #endif - try await sys.swift().build(.swiftSdk("\(arch)-swift-linux-musl"), .product("test-swiftly"), .pkgConfigPath(pkgConfigPath / "lib/pkgconfig"), .staticSwiftStdlib, .configuration("debug")).run(currentPlatform) + try await sys.swift().build(.swift_sdk("\(arch)-swift-linux-musl"), .product("test-swiftly"), .pkg_config_path(pkgConfigPath / "lib/pkgconfig"), .static_swift_stdlib, .configuration("debug")).run(currentPlatform) try await sys.tar(.directory(debugDir)).create(.compressed, .archive(testArchive), files: ["test-swiftly"]).run(currentPlatform) print(testArchive) } - try await sys.swift().sdk().remove(sdkName).runEcho(currentPlatform) + try await sys.swift().sdk().remove(sdk_id_or_bundle_name: sdkName).runEcho(currentPlatform) } func buildMacOSRelease(cert: String?, identifier: String) async throws { diff --git a/Tools/generate-command-models/GenerateCommandModels.swift b/Tools/generate-command-models/GenerateCommandModels.swift index df630390..067feea0 100644 --- a/Tools/generate-command-models/GenerateCommandModels.swift +++ b/Tools/generate-command-models/GenerateCommandModels.swift @@ -246,11 +246,11 @@ struct GenerateCommandModels: AsyncParsableCommand { self.argInfos.map { $0.isOptional ? $0.isRepeating ? - "if let \($0.asSwiftName) = self.\($0.asSwiftName) { args += \($0.asSwiftName).map(\\.description) }" : - "if let \($0.asSwiftName) = self.\($0.asSwiftName) { args += [\($0.asSwiftName).description] }" : + "if let \($0.asSwiftName) = self.\($0.asSwiftName) { genArgs += \($0.asSwiftName).map(\\.description) }" : + "if let \($0.asSwiftName) = self.\($0.asSwiftName) { genArgs += [\($0.asSwiftName).description] }" : $0.isRepeating ? - "args += self.\($0.asSwiftName).map(\\.description)" : - "args += [self.\($0.asSwiftName).description]" + "genArgs += self.\($0.asSwiftName).map(\\.description)" : + "genArgs += [self.\($0.asSwiftName).description]" } } } @@ -299,6 +299,8 @@ struct GenerateCommandModels: AsyncParsableCommand { name = dashes + longName } else if let shortName = arg.names?.filter { $0.kind == .short }.first?.name { name = "-" + shortName + } else if let longNameWithSingleDash = arg.names?.filter { $0.kind == .longWithSingleDash }.first?.name { + name = "-" + longNameWithSingleDash } guard let name else { fatalError("Unable to find a suitable argument name for \(arg)") } @@ -330,7 +332,7 @@ struct GenerateCommandModels: AsyncParsableCommand { return """ for opt in self.options { - args.append(contentsOf: opt.args()) + genArgs.append(contentsOf: opt.args()) } """.split(separator: "\n", omittingEmptySubsequences: false).map { String($0) } } @@ -398,7 +400,7 @@ struct GenerateCommandModels: AsyncParsableCommand { if path.count == 0 { configFunc = """ public func config() -> Configuration { - var args: [String] = [] + var genArgs: [String] = [] \(( options.asArgs + @@ -407,7 +409,7 @@ struct GenerateCommandModels: AsyncParsableCommand { return Configuration( executable: self.executable, - arguments: Arguments(args), + arguments: Arguments(genArgs), environment: .inherit ) } @@ -417,16 +419,16 @@ struct GenerateCommandModels: AsyncParsableCommand { public func config() -> Configuration { var c = self.parent.config() - var args = c.arguments.storage.map(\\.description) + var genArgs = c.arguments.storage.map(\\.description) - args.append("\(execName)") + genArgs.append("\(execName)") \(( options.asArgs + vars.asArgs ).joined(separator: "\n" + indent(1))) - c.arguments = .init(args) + c.arguments = .init(genArgs) return c } From 48906c77450ea84fd023f6ef830f084f947b86a0 Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Tue, 6 May 2025 09:58:57 -0400 Subject: [PATCH 06/15] Adopt JSON for make --- Sources/SwiftlyCore/Commands.swift | 56 +-------------------------- Sources/SwiftlyCore/CommandsNew.swift | 50 ++++++++++++++++++++++++ Sources/SwiftlyCore/make.json | 17 ++++++++ 3 files changed, 69 insertions(+), 54 deletions(-) create mode 100644 Sources/SwiftlyCore/make.json diff --git a/Sources/SwiftlyCore/Commands.swift b/Sources/SwiftlyCore/Commands.swift index 2418c735..f01bfc43 100644 --- a/Sources/SwiftlyCore/Commands.swift +++ b/Sources/SwiftlyCore/Commands.swift @@ -50,60 +50,8 @@ extension SystemCommand.swiftCommand.sdkCommand.installCommand: Runnable {} extension SystemCommand.swiftCommand.sdkCommand.removeCommand: Runnable {} extension SystemCommand.swiftCommand.buildCommand: Runnable {} -extension SystemCommand { - // make utility to maintain groups of programs - // See make(1) for more information. - public static func make(executable: Executable = MakeCommand.defaultExecutable) -> MakeCommand { - MakeCommand(executable: executable) - } - - public struct MakeCommand { - public static var defaultExecutable: Executable { .name("make") } - - public var executable: Executable - - public init(executable: Executable) { - self.executable = executable - } - - public func config() -> Configuration { - var args: [String] = [] - - return Configuration( - executable: self.executable, - arguments: Arguments(args), - environment: .inherit - ) - } - - public func install() -> InstallCommand { - InstallCommand(self) - } - - public struct InstallCommand { - var make: MakeCommand - - init(_ make: MakeCommand) { - self.make = make - } - - public func config() -> Configuration { - var c = self.make.config() - - var args = c.arguments.storage.map(\.description) - - args.append("install") - - c.arguments = .init(args) - - return c - } - } - } -} - -extension SystemCommand.MakeCommand: Runnable {} -extension SystemCommand.MakeCommand.InstallCommand: Runnable {} +extension SystemCommand.makeCommand: Runnable {} +extension SystemCommand.makeCommand.installCommand: Runnable {} extension SystemCommand { // remove symbols diff --git a/Sources/SwiftlyCore/CommandsNew.swift b/Sources/SwiftlyCore/CommandsNew.swift index 6fa900d8..14a66d45 100644 --- a/Sources/SwiftlyCore/CommandsNew.swift +++ b/Sources/SwiftlyCore/CommandsNew.swift @@ -398,6 +398,56 @@ extension SystemCommand { } } +extension SystemCommand { + // make utility to maintain groups of programs. See make(1) for more information. + public static func make(executable: Executable = makeCommand.defaultExecutable) -> makeCommand { + makeCommand(executable: executable) + } + + public struct makeCommand { + public static var defaultExecutable: Executable { .name("make") } + public var executable: Executable + + public init(executable: Executable) { + self.executable = executable + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + + public func install() -> installCommand { + installCommand(parent: self) + } + + public struct installCommand { + public var parent: makeCommand + + public init(parent: makeCommand) { + self.parent = parent + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("install") + + c.arguments = .init(genArgs) + + return c + } + } + } +} + extension SystemCommand { // Build a macOS Installer component package from on-disk files. See pkgbuild(1) for more information. public static func pkgbuild(executable: Executable = pkgbuildCommand.defaultExecutable, _ options: pkgbuildCommand.Option..., package_output_path: FilePath) -> pkgbuildCommand { diff --git a/Sources/SwiftlyCore/make.json b/Sources/SwiftlyCore/make.json new file mode 100644 index 00000000..b86f38d9 --- /dev/null +++ b/Sources/SwiftlyCore/make.json @@ -0,0 +1,17 @@ +{ + "serializationVersion": 0, + "command": { + "commandName": "make", + "abstract": "make utility to maintain groups of programs. See make(1) for more information.", + "shouldDisplay": true, + "subcommands": [ + { + "commandName": "install", + "superCommands": [ + "make" + ], + "shouldDisplay": true, + } + ] + } +} From b0cfb7890f8824f14cef78e67dfd62e9498d9165 Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Tue, 6 May 2025 10:06:46 -0400 Subject: [PATCH 07/15] Adopt JSON for strip --- Sources/SwiftlyCore/Commands.swift | 41 +------------------ Sources/SwiftlyCore/CommandsNew.swift | 35 ++++++++++++++++ Sources/SwiftlyCore/strip-ext.json | 8 ++++ Sources/SwiftlyCore/strip.json | 17 ++++++++ Tests/SwiftlyTests/CommandLineTests.swift | 2 +- .../BuildSwiftlyRelease.swift | 6 +-- 6 files changed, 65 insertions(+), 44 deletions(-) create mode 100644 Sources/SwiftlyCore/strip-ext.json create mode 100644 Sources/SwiftlyCore/strip.json diff --git a/Sources/SwiftlyCore/Commands.swift b/Sources/SwiftlyCore/Commands.swift index f01bfc43..c27d6c5f 100644 --- a/Sources/SwiftlyCore/Commands.swift +++ b/Sources/SwiftlyCore/Commands.swift @@ -53,46 +53,7 @@ extension SystemCommand.swiftCommand.buildCommand: Runnable {} extension SystemCommand.makeCommand: Runnable {} extension SystemCommand.makeCommand.installCommand: Runnable {} -extension SystemCommand { - // remove symbols - // See strip(1) for more information. - public static func strip(executable: Executable = StripCommand.defaultExecutable, names: FilePath...) -> StripCommand { - self.strip(executable: executable, names: names) - } - - // remove symbols - // See strip(1) for more information. - public static func strip(executable: Executable = StripCommand.defaultExecutable, names: [FilePath]) -> StripCommand { - StripCommand(executable: executable, names: names) - } - - public struct StripCommand { - public static var defaultExecutable: Executable { .name("strip") } - - public var executable: Executable - - public var names: [FilePath] - - public init(executable: Executable, names: [FilePath]) { - self.executable = executable - self.names = names - } - - public func config() -> Configuration { - var args: [String] = [] - - args.append(contentsOf: self.names.map(\.string)) - - return Configuration( - executable: self.executable, - arguments: Arguments(args), - environment: .inherit - ) - } - } -} - -extension SystemCommand.StripCommand: Runnable {} +extension SystemCommand.stripCommand: Runnable {} extension SystemCommand.sha256sumCommand: Output {} diff --git a/Sources/SwiftlyCore/CommandsNew.swift b/Sources/SwiftlyCore/CommandsNew.swift index 14a66d45..fe85c5f1 100644 --- a/Sources/SwiftlyCore/CommandsNew.swift +++ b/Sources/SwiftlyCore/CommandsNew.swift @@ -562,6 +562,41 @@ extension SystemCommand { } } +extension SystemCommand { + // remove symbols. See strip(1) for more information. + public static func strip(executable: Executable = stripCommand.defaultExecutable, name: FilePath...) -> stripCommand { + Self.strip(executable: executable, name: name) + } + + // remove symbols. See strip(1) for more information. + public static func strip(executable: Executable = stripCommand.defaultExecutable, name: [FilePath]) -> stripCommand { + stripCommand(executable: executable, name: name) + } + + public struct stripCommand { + public static var defaultExecutable: Executable { .name("strip") } + public var executable: Executable + public var name: [FilePath] + + public init(executable: Executable, name: [FilePath]) { + self.executable = executable + self.name = name + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + genArgs += self.name.map(\.description) + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + } +} + extension SystemCommand { // Swift compiler public static func swift(executable: Executable = swiftCommand.defaultExecutable) -> swiftCommand { diff --git a/Sources/SwiftlyCore/strip-ext.json b/Sources/SwiftlyCore/strip-ext.json new file mode 100644 index 00000000..4700bd8b --- /dev/null +++ b/Sources/SwiftlyCore/strip-ext.json @@ -0,0 +1,8 @@ +{ + "arguments": [ + { + "path": "name", + "type": "file" + } + ] +} diff --git a/Sources/SwiftlyCore/strip.json b/Sources/SwiftlyCore/strip.json new file mode 100644 index 00000000..f089e44d --- /dev/null +++ b/Sources/SwiftlyCore/strip.json @@ -0,0 +1,17 @@ +{ + "serializationVersion": 0, + "command": { + "commandName": "strip", + "abstract": "remove symbols. See strip(1) for more information.", + "shouldDisplay": true, + "arguments": [ + { + "valueName": "name", + "isOptional": false, + "isRepeating": true, + "kind": "positional", + "shouldDisplay": true + } + ] + } +} diff --git a/Tests/SwiftlyTests/CommandLineTests.swift b/Tests/SwiftlyTests/CommandLineTests.swift index e7683f97..03802fe7 100644 --- a/Tests/SwiftlyTests/CommandLineTests.swift +++ b/Tests/SwiftlyTests/CommandLineTests.swift @@ -201,7 +201,7 @@ public struct CommandLineTests { } @Test func testStrip() async throws { - var config = sys.strip(names: FilePath("foo")).config() + var config = sys.strip(name: FilePath("foo")).config() #expect(String(describing: config) == "strip foo") } diff --git a/Tools/build-swiftly-release/BuildSwiftlyRelease.swift b/Tools/build-swiftly-release/BuildSwiftlyRelease.swift index 2aa45b3f..374c75a2 100644 --- a/Tools/build-swiftly-release/BuildSwiftlyRelease.swift +++ b/Tools/build-swiftly-release/BuildSwiftlyRelease.swift @@ -237,7 +237,7 @@ struct BuildSwiftlyRelease: AsyncParsableCommand { let releaseDir = cwd / ".build/release" // Strip the symbols from the binary to decrease its size - try await sys.strip(names: releaseDir / "swiftly").run(currentPlatform) + try await sys.strip(name: releaseDir / "swiftly").run(currentPlatform) try await self.collectLicenses(releaseDir) @@ -276,7 +276,7 @@ struct BuildSwiftlyRelease: AsyncParsableCommand { for arch in ["x86_64", "arm64"] { try await sys.swift().build(.product("swiftly"), .configuration("release"), .arch("\(arch)")).run(currentPlatform) - try await sys.strip(names: FilePath(".build") / "\(arch)-apple-macosx/release/swiftly").run(currentPlatform) + try await sys.strip(name: FilePath(".build") / "\(arch)-apple-macosx/release/swiftly").run(currentPlatform) } let swiftlyBinDir = fs.cwd / ".build/release/.swiftly/bin" @@ -341,7 +341,7 @@ struct BuildSwiftlyRelease: AsyncParsableCommand { if self.test { for arch in ["x86_64", "arm64"] { try await sys.swift().build(.product("test-swiftly"), .configuration("debug"), .arch("\(arch)")).runEcho(currentPlatform) - try await sys.strip(names: ".build" / "\(arch)-apple-macosx/release/swiftly").runEcho(currentPlatform) + try await sys.strip(name: ".build" / "\(arch)-apple-macosx/release/swiftly").runEcho(currentPlatform) } let testArchive = releaseDir / "test-swiftly-macos.tar.gz" From f399feb84ce9b49a05218fd41494bc1e6db0bbbf Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Tue, 6 May 2025 10:15:20 -0400 Subject: [PATCH 08/15] Remove built-in test case and produce regeneration instructions --- Sources/SwiftlyCore/CommandsNew.swift | 4 + .../GenerateCommandModels.swift | 115 +----------------- 2 files changed, 9 insertions(+), 110 deletions(-) diff --git a/Sources/SwiftlyCore/CommandsNew.swift b/Sources/SwiftlyCore/CommandsNew.swift index fe85c5f1..0bc086fb 100644 --- a/Sources/SwiftlyCore/CommandsNew.swift +++ b/Sources/SwiftlyCore/CommandsNew.swift @@ -1,3 +1,7 @@ +// +// DO NOT EDIT THIS FILE: It is generated using the JSON files in this directory (based on swift-argument-parser --experimental-dump-help format). +// REGENERATE: swift run generate-command-models && swift run swiftformat Sources/SwiftlyCore/Commands*.swift +// import SystemPackage extension SystemCommand { diff --git a/Tools/generate-command-models/GenerateCommandModels.swift b/Tools/generate-command-models/GenerateCommandModels.swift index 067feea0..00d57d94 100644 --- a/Tools/generate-command-models/GenerateCommandModels.swift +++ b/Tools/generate-command-models/GenerateCommandModels.swift @@ -37,98 +37,6 @@ struct GenerateCommandModels: AsyncParsableCommand { abstract: "Generate models for commands based on a JSON representation of them based on the swift-argument-parser `--experimental-dump-help`." ) - let sha256sumjson = """ - { - "serializationVersion": 0, - "command": { - "commandName": "sha256sum", - "superCommands": ["myparent"], - "shouldDisplay": true, - "arguments": [ - { - "names": [ - { - "kind": "long", - "name": "file" - } - ], - "preferredName": { - "kind": "long", - "name": "file" - }, - "valueName": "file", - "isOptional": false, - "isRepeating": true, - "kind": "positional", - "shouldDisplay": true - }, - { - "names": [ - { - "kind": "long", - "name": "abcde" - } - ], - "preferredName": { - "kind": "long", - "name": "abcde" - }, - "valueName": "abcde", - "isOptional": false, - "isRepeating": true, - "kind": "positional", - "shouldDisplay": true - }, - { - "names": [ - { - "kind": "long", - "name": "verbose" - } - ], - "preferredName": { - "kind": "long", - "name": "verbose" - }, - "valueName": "verbose", - "isOptional": true, - "isRepeating": false, - "kind": "flag", - "shouldDisplay": true - }, - { - "names": [ - { - "kind": "long", - "name": "xyz" - } - ], - "preferredName": { - "kind": "long", - "name": "xyz" - }, - "valueName": "xyz", - "isOptional": true, - "isRepeating": false, - "kind": "option", - "shouldDisplay": true - } - ] - } - } - """ - - let sha256sumextension = """ - { - "arguments": [ - { - "path": "file", - "type": "file" - } - ] - } - """ - func validate() throws {} func run() async throws { @@ -137,6 +45,10 @@ struct GenerateCommandModels: AsyncParsableCommand { let cmdHelpFiles = (try await fs.ls(atPath: swiftlyCoreDir)).filter { $0.hasSuffix(".json") && !$0.hasSuffix("-ext.json") }.sorted() var allCmds = """ + // + // DO NOT EDIT THIS FILE: It is generated using the JSON files in this directory (based on swift-argument-parser --experimental-dump-help format). + // REGENERATE: swift run generate-command-models && swift run swiftformat Sources/SwiftlyCore/Commands*.swift + // import SystemPackage @@ -170,24 +82,7 @@ struct GenerateCommandModels: AsyncParsableCommand { """ } - try await allCmds.write(to: swiftlyCoreDir / "CommandsNew.swift-new", atomically: true) - - let data = self.sha256sumjson.data(using: .utf8)! - - let toolInfoThin = try JSONDecoder().decode(ToolInfoHeader.self, from: data) - guard toolInfoThin.serializationVersion == 0 else { - fatalError("Unsupported serialization version") - } - - let toolInfo: ToolInfoV0 = try JSONDecoder().decode(ToolInfoV0.self, from: data) - - let extdata = self.sha256sumextension.data(using: .utf8)! - - let cmdExt: CommandExtensions = try JSONDecoder().decode(CommandExtensions.self, from: extdata) - - let top = toolInfo.command - - print("\(self.asCommand(top, cmdExt))") + try await allCmds.write(to: swiftlyCoreDir / "CommandsNew.swift", atomically: true) } struct Vars { From 645fef47a32fdc9c7b2f8913c8f3f915a273d3b7 Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Wed, 7 May 2025 08:13:59 -0400 Subject: [PATCH 09/15] Model the productbuild command --- Sources/SwiftlyCore/Commands.swift | 123 +----------------- Sources/SwiftlyCore/CommandsNew.swift | 63 +++++++++ Sources/SwiftlyCore/productbuild-ext.json | 20 +++ Sources/SwiftlyCore/productbuild.json | 102 +++++++++++++++ Tests/SwiftlyTests/CommandLineTests.swift | 6 +- .../BuildSwiftlyRelease.swift | 6 +- 6 files changed, 192 insertions(+), 128 deletions(-) create mode 100644 Sources/SwiftlyCore/productbuild-ext.json create mode 100644 Sources/SwiftlyCore/productbuild.json diff --git a/Sources/SwiftlyCore/Commands.swift b/Sources/SwiftlyCore/Commands.swift index c27d6c5f..80987e18 100644 --- a/Sources/SwiftlyCore/Commands.swift +++ b/Sources/SwiftlyCore/Commands.swift @@ -57,128 +57,7 @@ extension SystemCommand.stripCommand: Runnable {} extension SystemCommand.sha256sumCommand: Output {} -extension SystemCommand { - // Build a product archive for the macOS Installer or the Mac App Store. - // See productbuild(1) for more information. - public static func productbuild(executable: Executable = ProductBuildCommand.defaultExecutable) -> ProductBuildCommand { - ProductBuildCommand(executable: executable) - } - - public struct ProductBuildCommand { - public static var defaultExecutable: Executable { .name("productbuild") } - - public var executable: Executable - - public init(executable: Executable) { - self.executable = executable - } - - public func config() -> Configuration { - var args: [String] = [] - - return Configuration( - executable: self.executable, - arguments: Arguments(args), - environment: .inherit - ) - } - - public func synthesize(package: FilePath, distributionOutputPath: FilePath) -> SynthesizeCommand { - SynthesizeCommand(self, package: package, distributionOutputPath: distributionOutputPath) - } - - public struct SynthesizeCommand { - public var productBuildCommand: ProductBuildCommand - - public var package: FilePath - - public var distributionOutputPath: FilePath - - public init(_ productBuildCommand: ProductBuildCommand, package: FilePath, distributionOutputPath: FilePath) { - self.productBuildCommand = productBuildCommand - self.package = package - self.distributionOutputPath = distributionOutputPath - } - - public func config() -> Configuration { - var c = self.productBuildCommand.config() - - var args = c.arguments.storage.map(\.description) - - args.append("--synthesize") - - args.append(contentsOf: ["--package", "\(self.package)"]) - args.append("\(self.distributionOutputPath)") - - c.arguments = .init(args) - - return c - } - } - - public func distribution(_ options: DistributionCommand.Option..., distPath: FilePath, productOutputPath: FilePath) -> DistributionCommand { - self.distribution(options, distPath: distPath, productOutputPath: productOutputPath) - } - - public func distribution(_ options: [DistributionCommand.Option], distPath: FilePath, productOutputPath: FilePath) -> DistributionCommand { - DistributionCommand(self, options, distPath: distPath, productOutputPath: productOutputPath) - } - - public struct DistributionCommand { - public var productBuildCommand: ProductBuildCommand - - public var options: [Option] - - public var distPath: FilePath - - public var productOutputPath: FilePath - - public enum Option { - case packagePath(FilePath) - case sign(String) - - public func args() -> [String] { - switch self { - case let .packagePath(packagePath): - ["--package-path", "\(packagePath)"] - case let .sign(sign): - ["--sign", "\(sign)"] - } - } - } - - public init(_ productBuildCommand: ProductBuildCommand, _ options: [Option], distPath: FilePath, productOutputPath: FilePath) { - self.productBuildCommand = productBuildCommand - self.options = options - self.distPath = distPath - self.productOutputPath = productOutputPath - } - - public func config() -> Configuration { - var c = self.productBuildCommand.config() - - var args = c.arguments.storage.map(\.description) - - args.append("--distribution") - - args.append("\(self.distPath)") - - for opt in self.options { - args.append(contentsOf: opt.args()) - } - - args.append("\(self.productOutputPath)") - - c.arguments = .init(args) - - return c - } - } - } -} - -extension SystemCommand.ProductBuildCommand.SynthesizeCommand: Runnable {} -extension SystemCommand.ProductBuildCommand.DistributionCommand: Runnable {} +extension SystemCommand.productbuildCommand: Runnable {} extension SystemCommand { // OpenPGP encryption and signing tool diff --git a/Sources/SwiftlyCore/CommandsNew.swift b/Sources/SwiftlyCore/CommandsNew.swift index 0bc086fb..8a3d8704 100644 --- a/Sources/SwiftlyCore/CommandsNew.swift +++ b/Sources/SwiftlyCore/CommandsNew.swift @@ -515,6 +515,69 @@ extension SystemCommand { } } +extension SystemCommand { + // Build a product archive for the macOS Installer or the Mac App Store. See productbuild(1) for more information. + public static func productbuild(executable: Executable = productbuildCommand.defaultExecutable, _ options: productbuildCommand.Option..., output_path: FilePath) -> productbuildCommand { + Self.productbuild(executable: executable, options, output_path: output_path) + } + + // Build a product archive for the macOS Installer or the Mac App Store. See productbuild(1) for more information. + public static func productbuild(executable: Executable = productbuildCommand.defaultExecutable, _ options: [productbuildCommand.Option], output_path: FilePath) -> productbuildCommand { + productbuildCommand(executable: executable, options, output_path: output_path) + } + + public struct productbuildCommand { + public static var defaultExecutable: Executable { .name("productbuild") } + public var executable: Executable + public var options: [Option] + public var output_path: FilePath + + public enum Option { + case synthesize + case dist_path(FilePath) + case pkg_path(FilePath) + case search_path(FilePath) + case cert(String) + + public func args() -> [String] { + switch self { + case .synthesize: + ["--synthesize"] + case let .dist_path(dist_path): + ["--distribution", String(describing: dist_path)] + case let .pkg_path(pkg_path): + ["--package", String(describing: pkg_path)] + case let .search_path(search_path): + ["--package-path", String(describing: search_path)] + case let .cert(cert): + ["--sign", String(describing: cert)] + } + } + } + + public init(executable: Executable, _ options: [productbuildCommand.Option], output_path: FilePath) { + self.executable = executable + self.options = options + self.output_path = output_path + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.output_path.description] + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + } +} + extension SystemCommand { // calculate a message-digest fingerprint (checksum) for a file. See sha256sum(1) for more information. public static func sha256sum(executable: Executable = sha256sumCommand.defaultExecutable, _ options: sha256sumCommand.Option..., files: FilePath...) -> sha256sumCommand { diff --git a/Sources/SwiftlyCore/productbuild-ext.json b/Sources/SwiftlyCore/productbuild-ext.json new file mode 100644 index 00000000..5112c288 --- /dev/null +++ b/Sources/SwiftlyCore/productbuild-ext.json @@ -0,0 +1,20 @@ +{ + "arguments": [ + { + "path": "output-path", + "type": "file" + }, + { + "path": "pkg-path", + "type": "file" + }, + { + "path": "dist-path", + "type": "file" + }, + { + "path": "search-path", + "type": "file" + } + ] +} diff --git a/Sources/SwiftlyCore/productbuild.json b/Sources/SwiftlyCore/productbuild.json new file mode 100644 index 00000000..68f4f45d --- /dev/null +++ b/Sources/SwiftlyCore/productbuild.json @@ -0,0 +1,102 @@ +{ + "serializationVersion": 0, + "command": { + "commandName": "productbuild", + "abstract": "Build a product archive for the macOS Installer or the Mac App Store. See productbuild(1) for more information.", + "shouldDisplay": true, + "arguments": [ + { + "names": [ + { + "kind": "long", + "name": "synthesize" + } + ], + "preferredName": { + "kind": "long", + "name": "synthesize" + }, + "valueName": "synthesize", + "isOptional": true, + "isRepeating": false, + "kind": "flag", + "shouldDisplay": true + }, + { + "names": [ + { + "kind": "long", + "name": "distribution" + } + ], + "preferredName": { + "kind": "long", + "name": "distribution" + }, + "valueName": "dist-path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "shouldDisplay": true + }, + { + "names": [ + { + "kind": "long", + "name": "package" + } + ], + "preferredName": { + "kind": "long", + "name": "package" + }, + "valueName": "pkg-path", + "isOptional": false, + "isRepeating": false, + "kind": "option", + "shouldDisplay": true + }, + { + "names": [ + { + "kind": "long", + "name": "package-path" + } + ], + "preferredName": { + "kind": "long", + "name": "package-path" + }, + "valueName": "search-path", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "shouldDisplay": true + }, + { + "names": [ + { + "kind": "long", + "name": "sign" + } + ], + "preferredName": { + "kind": "long", + "name": "sign" + }, + "valueName": "cert", + "isOptional": true, + "isRepeating": false, + "kind": "option", + "shouldDisplay": true + }, + { + "valueName": "output-path", + "isOptional": false, + "isRepeating": false, + "kind": "positional", + "shouldDisplay": true + } + ] + } +} diff --git a/Tests/SwiftlyTests/CommandLineTests.swift b/Tests/SwiftlyTests/CommandLineTests.swift index 03802fe7..26c59992 100644 --- a/Tests/SwiftlyTests/CommandLineTests.swift +++ b/Tests/SwiftlyTests/CommandLineTests.swift @@ -211,13 +211,13 @@ public struct CommandLineTests { } @Test func testProductBuild() async throws { - var config = sys.productbuild().synthesize(package: FilePath("mypkg"), distributionOutputPath: FilePath("distribution")).config() + var config = sys.productbuild(.synthesize, .pkg_path(FilePath("mypkg")), output_path: FilePath("distribution")).config() #expect(String(describing: config) == "productbuild --synthesize --package mypkg distribution") - config = sys.productbuild().distribution(distPath: FilePath("mydist"), productOutputPath: FilePath("product")).config() + config = sys.productbuild(.dist_path(FilePath("mydist")), output_path: FilePath("product")).config() #expect(String(describing: config) == "productbuild --distribution mydist product") - config = sys.productbuild().distribution(.packagePath(FilePath("pkgpath")), .sign("mycert"), distPath: FilePath("mydist"), productOutputPath: FilePath("myproduct")).config() + config = sys.productbuild(.dist_path(FilePath("mydist")), .search_path(FilePath("pkgpath")), .cert("mycert"), output_path: FilePath("myproduct")).config() #expect(String(describing: config) == "productbuild --distribution mydist --package-path pkgpath --sign mycert myproduct") } diff --git a/Tools/build-swiftly-release/BuildSwiftlyRelease.swift b/Tools/build-swiftly-release/BuildSwiftlyRelease.swift index 374c75a2..2a7f8c94 100644 --- a/Tools/build-swiftly-release/BuildSwiftlyRelease.swift +++ b/Tools/build-swiftly-release/BuildSwiftlyRelease.swift @@ -322,16 +322,16 @@ struct BuildSwiftlyRelease: AsyncParsableCommand { let pkgFileReconfigured = releaseDir / "swiftly-\(self.version)-reconfigured.pkg" let distFile = releaseDir / "distribution.plist" - try await sys.productbuild().synthesize(package: pkgFile, distributionOutputPath: distFile).runEcho(currentPlatform) + try await sys.productbuild(.synthesize, .pkg_path(pkgFile), output_path: distFile).runEcho(currentPlatform) var distFileContents = try String(contentsOf: distFile, encoding: .utf8) distFileContents = distFileContents.replacingOccurrences(of: "", with: "swiftly") try distFileContents.write(to: distFile, atomically: true, encoding: .utf8) if let cert = cert { - try await sys.productbuild().distribution(.packagePath(pkgFile.parent), .sign(cert), distPath: distFile, productOutputPath: pkgFileReconfigured).runEcho(currentPlatform) + try await sys.productbuild(.search_path(pkgFile.parent), .cert(cert), .dist_path(distFile), output_path: pkgFileReconfigured).runEcho(currentPlatform) } else { - try await sys.productbuild().distribution(.packagePath(pkgFile.parent), distPath: distFile, productOutputPath: pkgFileReconfigured).runEcho(currentPlatform) + try await sys.productbuild(.search_path(pkgFile.parent), .dist_path(distFile), output_path: pkgFileReconfigured).runEcho(currentPlatform) } try await fs.remove(atPath: pkgFile) try await fs.copy(atPath: pkgFileReconfigured, toPath: pkgFile) From 385caefa35f00d94e60349ffba56d7f389791d58 Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Wed, 7 May 2025 10:02:47 -0400 Subject: [PATCH 10/15] Model the gpg command --- Sources/SwiftlyCore/Commands.swift | 100 +----------------- Sources/SwiftlyCore/CommandsNew.swift | 89 ++++++++++++++++ Sources/SwiftlyCore/gpg-ext.json | 16 +++ Sources/SwiftlyCore/gpg.json | 49 +++++++++ Tests/SwiftlyTests/CommandLineTests.swift | 4 +- Tests/SwiftlyTests/HTTPClientTests.swift | 10 +- .../GenerateCommandModels.swift | 4 +- 7 files changed, 165 insertions(+), 107 deletions(-) create mode 100644 Sources/SwiftlyCore/gpg-ext.json create mode 100644 Sources/SwiftlyCore/gpg.json diff --git a/Sources/SwiftlyCore/Commands.swift b/Sources/SwiftlyCore/Commands.swift index 80987e18..1f1dfdc8 100644 --- a/Sources/SwiftlyCore/Commands.swift +++ b/Sources/SwiftlyCore/Commands.swift @@ -59,104 +59,8 @@ extension SystemCommand.sha256sumCommand: Output {} extension SystemCommand.productbuildCommand: Runnable {} -extension SystemCommand { - // OpenPGP encryption and signing tool - // See gpg(1) for more information. - public static func gpg(executable: Executable = GpgCommand.defaultExecutable) -> GpgCommand { - GpgCommand(executable: executable) - } - - public struct GpgCommand { - public static var defaultExecutable: Executable { .name("gpg") } - - public var executable: Executable - - public init(executable: Executable) { - self.executable = executable - } - - public func config() -> Configuration { - var args: [String] = [] - - return Configuration( - executable: self.executable, - arguments: Arguments(args), - environment: .inherit - ) - } - - public func _import(keys: FilePath...) -> ImportCommand { - self._import(keys: keys) - } - - public func _import(keys: [FilePath]) -> ImportCommand { - ImportCommand(self, keys: keys) - } - - public struct ImportCommand { - public var gpg: GpgCommand - - public var keys: [FilePath] - - public init(_ gpg: GpgCommand, keys: [FilePath]) { - self.gpg = gpg - self.keys = keys - } - - public func config() -> Configuration { - var c: Configuration = self.gpg.config() - - var args = c.arguments.storage.map(\.description) - - args.append("--import") - - for key in self.keys { - args.append("\(key)") - } - - c.arguments = .init(args) - - return c - } - } - - public func verify(detachedSignature: FilePath, signedData: FilePath) -> VerifyCommand { - VerifyCommand(self, detachedSignature: detachedSignature, signedData: signedData) - } - - public struct VerifyCommand { - public var gpg: GpgCommand - - public var detachedSignature: FilePath - - public var signedData: FilePath - - public init(_ gpg: GpgCommand, detachedSignature: FilePath, signedData: FilePath) { - self.gpg = gpg - self.detachedSignature = detachedSignature - self.signedData = signedData - } - - public func config() -> Configuration { - var c: Configuration = self.gpg.config() - - var args = c.arguments.storage.map(\.description) - - args.append("--verify") - - args.append("\(self.detachedSignature)") - args.append("\(self.signedData)") - - c.arguments = .init(args) - - return c - } - } - } -} - -extension SystemCommand.GpgCommand.ImportCommand: Runnable {} -extension SystemCommand.GpgCommand.VerifyCommand: Runnable {} +extension SystemCommand.gpgCommand.importCommand: Runnable {} +extension SystemCommand.gpgCommand.verifyCommand: Runnable {} extension SystemCommand { // Query and manipulate macOS Installer packages and receipts. diff --git a/Sources/SwiftlyCore/CommandsNew.swift b/Sources/SwiftlyCore/CommandsNew.swift index 8a3d8704..36542c43 100644 --- a/Sources/SwiftlyCore/CommandsNew.swift +++ b/Sources/SwiftlyCore/CommandsNew.swift @@ -322,6 +322,95 @@ extension SystemCommand { } } +extension SystemCommand { + // OpenPGP encryption and signing tool. See gpg(1) for more information. + public static func gpg(executable: Executable = gpgCommand.defaultExecutable) -> gpgCommand { + gpgCommand(executable: executable) + } + + public struct gpgCommand { + public static var defaultExecutable: Executable { .name("gpg") } + public var executable: Executable + + public init(executable: Executable) { + self.executable = executable + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + + public func _import(key: FilePath...) -> importCommand { + self._import(key: key) + } + + public func _import(key: [FilePath]) -> importCommand { + importCommand(parent: self, key: key) + } + + public struct importCommand { + public var parent: gpgCommand + public var key: [FilePath] + + public init(parent: gpgCommand, key: [FilePath]) { + self.parent = parent + self.key = key + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("--import") + + genArgs += self.key.map(\.description) + + c.arguments = .init(genArgs) + + return c + } + } + + public func verify(detached_signature: FilePath? = nil, signed_data: FilePath? = nil) -> verifyCommand { + verifyCommand(parent: self, detached_signature: detached_signature, signed_data: signed_data) + } + + public struct verifyCommand { + public var parent: gpgCommand + public var detached_signature: FilePath? + public var signed_data: FilePath? + + public init(parent: gpgCommand, detached_signature: FilePath? = nil, signed_data: FilePath? = nil) { + self.parent = parent + self.detached_signature = detached_signature + self.signed_data = signed_data + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("--verify") + + if let detached_signature = self.detached_signature { genArgs += [detached_signature.description] } + if let signed_data = self.signed_data { genArgs += [signed_data.description] } + + c.arguments = .init(genArgs) + + return c + } + } + } +} + extension SystemCommand { // Create or operate on universal files. See lipo(1) for more information. public static func lipo(executable: Executable = lipoCommand.defaultExecutable, input_file: FilePath...) -> lipoCommand { diff --git a/Sources/SwiftlyCore/gpg-ext.json b/Sources/SwiftlyCore/gpg-ext.json new file mode 100644 index 00000000..52b9b29a --- /dev/null +++ b/Sources/SwiftlyCore/gpg-ext.json @@ -0,0 +1,16 @@ +{ + "arguments": [ + { + "path": "--import.key", + "type": "file" + }, + { + "path": "--verify.detached-signature", + "type": "file" + }, + { + "path": "--verify.signed-data", + "type": "file" + } + ] +} diff --git a/Sources/SwiftlyCore/gpg.json b/Sources/SwiftlyCore/gpg.json new file mode 100644 index 00000000..d3b424ed --- /dev/null +++ b/Sources/SwiftlyCore/gpg.json @@ -0,0 +1,49 @@ +{ + "serializationVersion": 0, + "command": { + "commandName": "gpg", + "abstract": "OpenPGP encryption and signing tool. See gpg(1) for more information.", + "shouldDisplay": true, + "subcommands": [ + { + "commandName": "--import", + "superCommands": [ + "gpg" + ], + "shouldDisplay": true, + "arguments": [ + { + "valueName": "key", + "shouldDisplay": true, + "kind": "positional", + "isOptional": false, + "isRepeating": true + } + ] + }, + { + "commandName": "--verify", + "superCommands": [ + "gpg" + ], + "shouldDisplay": true, + "arguments": [ + { + "valueName": "detached-signature", + "shouldDisplay": true, + "kind": "positional", + "isOptional": true, + "isRepeating": false + }, + { + "valueName": "signed-data", + "shouldDisplay": true, + "kind": "positional", + "isOptional": true, + "isRepeating": false + } + ] + } + ] + } +} diff --git a/Tests/SwiftlyTests/CommandLineTests.swift b/Tests/SwiftlyTests/CommandLineTests.swift index 26c59992..762229f8 100644 --- a/Tests/SwiftlyTests/CommandLineTests.swift +++ b/Tests/SwiftlyTests/CommandLineTests.swift @@ -222,10 +222,10 @@ public struct CommandLineTests { } @Test func testGpg() async throws { - var config = sys.gpg()._import(keys: FilePath("somekeys.asc")).config() + var config = sys.gpg()._import(key: FilePath("somekeys.asc")).config() #expect(String(describing: config) == "gpg --import somekeys.asc") - config = sys.gpg().verify(detachedSignature: FilePath("file.sig"), signedData: FilePath("file")).config() + config = sys.gpg().verify(detached_signature: FilePath("file.sig"), signed_data: FilePath("file")).config() #expect(String(describing: config) == "gpg --verify file.sig file") } diff --git a/Tests/SwiftlyTests/HTTPClientTests.swift b/Tests/SwiftlyTests/HTTPClientTests.swift index db57fa7b..873304e9 100644 --- a/Tests/SwiftlyTests/HTTPClientTests.swift +++ b/Tests/SwiftlyTests/HTTPClientTests.swift @@ -19,7 +19,7 @@ import Testing } try await withGpg { runGpg in - try await runGpg(sys.gpg()._import(keys: tmpFile)) + try await runGpg(sys.gpg()._import(key: tmpFile)) } } } @@ -47,8 +47,8 @@ import Testing try await withGpg { runGpg in try await httpClient.getGpgKeys().download(to: keysFile) - try await runGpg(sys.gpg()._import(keys: keysFile)) - try await runGpg(sys.gpg().verify(detachedSignature: tmpFileSignature, signedData: tmpFile)) + try await runGpg(sys.gpg()._import(key: keysFile)) + try await runGpg(sys.gpg().verify(detached_signature: tmpFileSignature, signed_data: tmpFile)) } } } @@ -76,8 +76,8 @@ import Testing try await withGpg { runGpg in try await httpClient.getGpgKeys().download(to: keysFile) - try await runGpg(sys.gpg()._import(keys: keysFile)) - try await runGpg(sys.gpg().verify(detachedSignature: tmpFileSignature, signedData: tmpFile)) + try await runGpg(sys.gpg()._import(key: keysFile)) + try await runGpg(sys.gpg().verify(detached_signature: tmpFileSignature, signed_data: tmpFile)) } } } diff --git a/Tools/generate-command-models/GenerateCommandModels.swift b/Tools/generate-command-models/GenerateCommandModels.swift index 00d57d94..3600345a 100644 --- a/Tools/generate-command-models/GenerateCommandModels.swift +++ b/Tools/generate-command-models/GenerateCommandModels.swift @@ -249,9 +249,9 @@ struct GenerateCommandModels: AsyncParsableCommand { let swiftName = command.commandName.replacingOccurrences(of: "-", with: "") var funcName = swiftName - if funcName == "init" { + if ["init", "import"] .contains(funcName) { // TODO: handle all of Swift's keywords here - funcName = "_init" + funcName = "_" + funcName } let structName = "\(swiftName)Command" From 3e51f0becedbd7d25aca23b7a467c29d3da32c94 Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Wed, 7 May 2025 10:24:37 -0400 Subject: [PATCH 11/15] Model the pkgutil command --- Sources/MacOSPlatform/MacOS.swift | 10 +- Sources/SwiftlyCore/Commands.swift | 153 +--------------------- Sources/SwiftlyCore/CommandsNew.swift | 138 +++++++++++++++++++ Sources/SwiftlyCore/pkgutil-ext.json | 20 +++ Sources/SwiftlyCore/pkgutil.json | 101 ++++++++++++++ Tests/SwiftlyTests/CommandLineTests.swift | 6 +- 6 files changed, 270 insertions(+), 158 deletions(-) create mode 100644 Sources/SwiftlyCore/pkgutil-ext.json create mode 100644 Sources/SwiftlyCore/pkgutil.json diff --git a/Sources/MacOSPlatform/MacOS.swift b/Sources/MacOSPlatform/MacOS.swift index b4bd9b6f..b94d6adf 100644 --- a/Sources/MacOSPlatform/MacOS.swift +++ b/Sources/MacOSPlatform/MacOS.swift @@ -84,7 +84,7 @@ public struct MacOS: Platform { await ctx.print("Checking package signature...") do { - try await sys.pkgutil().checkSignature(pkgPath: tmpFile).run(self, quiet: !verbose) + try await sys.pkgutil().checksignature(pkg_path: tmpFile).run(self, quiet: !verbose) } catch { // If this is not a test that uses mocked toolchains then we must throw this error and abort installation guard ctx.mockedHomeDir != nil else { @@ -94,7 +94,7 @@ public struct MacOS: Platform { // We permit the signature verification to fail during testing await ctx.print("Signature verification failed, which is allowable during testing with mocked toolchains") } - try await sys.pkgutil(.verbose).expand(pkgPath: tmpFile, dirPath: tmpDir).run(self, quiet: !verbose) + try await sys.pkgutil(.verbose).expand(pkg_path: tmpFile, dir_path: tmpDir).run(self, quiet: !verbose) // There's a slight difference in the location of the special Payload file between official swift packages // and the ones that are mocked here in the test framework. @@ -121,7 +121,7 @@ public struct MacOS: Platform { pkg: archive, target: "CurrentUserHomeDirectory" ) - try? await sys.pkgutil(.volume(userHomeDir)).forget(packageId: "org.swift.swiftly").run(self) + try? await sys.pkgutil(.volume(userHomeDir)).forget(pkg_id: "org.swift.swiftly").run(self) } else { let installDir = userHomeDir / ".swiftly" try await fs.mkdir(.parents, atPath: installDir) @@ -129,7 +129,7 @@ public struct MacOS: Platform { // In the case of a mock for testing purposes we won't use the installer, perferring a manual process because // the installer will not install to an arbitrary path, only a volume or user home directory. let tmpDir = fs.mktemp() - try await sys.pkgutil().expand(pkgPath: archive, dirPath: tmpDir).run(self) + try await sys.pkgutil().expand(pkg_path: archive, dir_path: tmpDir).run(self) // There's a slight difference in the location of the special Payload file between official swift packages // and the ones that are mocked here in the test framework. @@ -162,7 +162,7 @@ public struct MacOS: Platform { try await fs.remove(atPath: toolchainDir) - try? await sys.pkgutil(.volume(fs.home)).forget(packageId: pkgInfo.CFBundleIdentifier).run(self, quiet: !verbose) + try? await sys.pkgutil(.volume(fs.home)).forget(pkg_id: pkgInfo.CFBundleIdentifier).run(self, quiet: !verbose) } public func getExecutableName() -> String { diff --git a/Sources/SwiftlyCore/Commands.swift b/Sources/SwiftlyCore/Commands.swift index 1f1dfdc8..f77768e9 100644 --- a/Sources/SwiftlyCore/Commands.swift +++ b/Sources/SwiftlyCore/Commands.swift @@ -62,156 +62,9 @@ extension SystemCommand.productbuildCommand: Runnable {} extension SystemCommand.gpgCommand.importCommand: Runnable {} extension SystemCommand.gpgCommand.verifyCommand: Runnable {} -extension SystemCommand { - // Query and manipulate macOS Installer packages and receipts. - // See pkgutil(1) for more information. - public static func pkgutil(executable: Executable = PkgutilCommand.defaultExecutable, _ options: PkgutilCommand.Option...) -> PkgutilCommand { - Self.pkgutil(executable: executable, options) - } - - // Query and manipulate macOS Installer packages and receipts. - // See pkgutil(1) for more information. - public static func pkgutil(executable: Executable = PkgutilCommand.defaultExecutable, _ options: [PkgutilCommand.Option]) -> PkgutilCommand { - PkgutilCommand(executable: executable, options) - } - - public struct PkgutilCommand { - public static var defaultExecutable: Executable { .name("pkgutil") } - - public var executable: Executable - - public var options: [Option] - - public enum Option { - case verbose - case volume(FilePath) - - public func args() -> [String] { - switch self { - case .verbose: - ["--verbose"] - case let .volume(volume): - ["--volume", "\(volume)"] - } - } - } - - public init(executable: Executable, _ options: [Option]) { - self.executable = executable - self.options = options - } - - public func config() -> Configuration { - var args: [String] = [] - - for opt in self.options { - args.append(contentsOf: opt.args()) - } - - return Configuration( - executable: self.executable, - arguments: Arguments(args), - environment: .inherit - ) - } - - public func checkSignature(pkgPath: FilePath) -> CheckSignatureCommand { - CheckSignatureCommand(self, pkgPath: pkgPath) - } - - public struct CheckSignatureCommand { - public var pkgutil: PkgutilCommand - - public var pkgPath: FilePath - - public init(_ pkgutil: PkgutilCommand, pkgPath: FilePath) { - self.pkgutil = pkgutil - self.pkgPath = pkgPath - } - - public func config() -> Configuration { - var c: Configuration = self.pkgutil.config() - - var args = c.arguments.storage.map(\.description) - - args.append("--check-signature") - - args.append("\(self.pkgPath)") - - c.arguments = .init(args) - - return c - } - } - - public func expand(pkgPath: FilePath, dirPath: FilePath) -> ExpandCommand { - ExpandCommand(self, pkgPath: pkgPath, dirPath: dirPath) - } - - public struct ExpandCommand { - public var pkgutil: PkgutilCommand - - public var pkgPath: FilePath - - public var dirPath: FilePath - - public init(_ pkgutil: PkgutilCommand, pkgPath: FilePath, dirPath: FilePath) { - self.pkgutil = pkgutil - self.pkgPath = pkgPath - self.dirPath = dirPath - } - - public func config() -> Configuration { - var c: Configuration = self.pkgutil.config() - - var args = c.arguments.storage.map(\.description) - - args.append("--expand") - - args.append("\(self.pkgPath)") - - args.append("\(self.dirPath)") - - c.arguments = .init(args) - - return c - } - } - - public func forget(packageId: String) -> ForgetCommand { - ForgetCommand(self, packageId: packageId) - } - - public struct ForgetCommand { - public var pkgutil: PkgutilCommand - - public var packageId: String - - public init(_ pkgutil: PkgutilCommand, packageId: String) { - self.pkgutil = pkgutil - self.packageId = packageId - } - - public func config() -> Configuration { - var c: Configuration = self.pkgutil.config() - - var args = c.arguments.storage.map(\.description) - - args.append("--forget") - - args.append("\(self.packageId)") - - c.arguments = .init(args) - - return c - } - } - } -} - -extension SystemCommand.PkgutilCommand.CheckSignatureCommand: Runnable {} -extension SystemCommand.PkgutilCommand.ExpandCommand: Runnable {} -extension SystemCommand.PkgutilCommand.ForgetCommand: Runnable {} +extension SystemCommand.pkgutilCommand.checksignatureCommand: Runnable {} +extension SystemCommand.pkgutilCommand.expandCommand: Runnable {} +extension SystemCommand.pkgutilCommand.forgetCommand: Runnable {} extension SystemCommand { // system software and package installer tool. diff --git a/Sources/SwiftlyCore/CommandsNew.swift b/Sources/SwiftlyCore/CommandsNew.swift index 36542c43..92cc38d5 100644 --- a/Sources/SwiftlyCore/CommandsNew.swift +++ b/Sources/SwiftlyCore/CommandsNew.swift @@ -604,6 +604,144 @@ extension SystemCommand { } } +extension SystemCommand { + // OpenPGP encryption and signing tool. See gpg(1) for more information. + public static func pkgutil(executable: Executable = pkgutilCommand.defaultExecutable, _ options: pkgutilCommand.Option...) -> pkgutilCommand { + Self.pkgutil(executable: executable, options) + } + + // OpenPGP encryption and signing tool. See gpg(1) for more information. + public static func pkgutil(executable: Executable = pkgutilCommand.defaultExecutable, _ options: [pkgutilCommand.Option]) -> pkgutilCommand { + pkgutilCommand(executable: executable, options) + } + + public struct pkgutilCommand { + public static var defaultExecutable: Executable { .name("pkgutil") } + public var executable: Executable + public var options: [Option] + + public enum Option { + case verbose + case volume(FilePath) + + public func args() -> [String] { + switch self { + case .verbose: + ["--verbose"] + case let .volume(volume): + ["--volume", String(describing: volume)] + } + } + } + + public init(executable: Executable, _ options: [pkgutilCommand.Option]) { + self.executable = executable + self.options = options + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + + public func checksignature(pkg_path: FilePath) -> checksignatureCommand { + checksignatureCommand(parent: self, pkg_path: pkg_path) + } + + public struct checksignatureCommand { + public var parent: pkgutilCommand + public var pkg_path: FilePath + + public init(parent: pkgutilCommand, pkg_path: FilePath) { + self.parent = parent + self.pkg_path = pkg_path + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("--check-signature") + + genArgs += [self.pkg_path.description] + + c.arguments = .init(genArgs) + + return c + } + } + + public func expand(pkg_path: FilePath, dir_path: FilePath) -> expandCommand { + expandCommand(parent: self, pkg_path: pkg_path, dir_path: dir_path) + } + + public struct expandCommand { + public var parent: pkgutilCommand + public var pkg_path: FilePath + public var dir_path: FilePath + + public init(parent: pkgutilCommand, pkg_path: FilePath, dir_path: FilePath) { + self.parent = parent + self.pkg_path = pkg_path + self.dir_path = dir_path + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("--expand") + + genArgs += [self.pkg_path.description] + genArgs += [self.dir_path.description] + + c.arguments = .init(genArgs) + + return c + } + } + + public func forget(pkg_id: String) -> forgetCommand { + forgetCommand(parent: self, pkg_id: pkg_id) + } + + public struct forgetCommand { + public var parent: pkgutilCommand + public var pkg_id: String + + public init(parent: pkgutilCommand, pkg_id: String) { + self.parent = parent + self.pkg_id = pkg_id + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("--forget") + + genArgs += [self.pkg_id.description] + + c.arguments = .init(genArgs) + + return c + } + } + } +} + extension SystemCommand { // Build a product archive for the macOS Installer or the Mac App Store. See productbuild(1) for more information. public static func productbuild(executable: Executable = productbuildCommand.defaultExecutable, _ options: productbuildCommand.Option..., output_path: FilePath) -> productbuildCommand { diff --git a/Sources/SwiftlyCore/pkgutil-ext.json b/Sources/SwiftlyCore/pkgutil-ext.json new file mode 100644 index 00000000..5ee11b8e --- /dev/null +++ b/Sources/SwiftlyCore/pkgutil-ext.json @@ -0,0 +1,20 @@ +{ + "arguments": [ + { + "path": "volume", + "type": "file" + }, + { + "path": "--check-signature.pkg-path", + "type": "file" + }, + { + "path": "--expand.pkg-path", + "type": "file" + }, + { + "path": "--expand.dir-path", + "type": "file" + } + ] +} diff --git a/Sources/SwiftlyCore/pkgutil.json b/Sources/SwiftlyCore/pkgutil.json new file mode 100644 index 00000000..4871b4bc --- /dev/null +++ b/Sources/SwiftlyCore/pkgutil.json @@ -0,0 +1,101 @@ +{ + "serializationVersion": 0, + "command": { + "commandName": "pkgutil", + "abstract": "OpenPGP encryption and signing tool. See gpg(1) for more information.", + "shouldDisplay": true, + "arguments": [ + { + "names": [ + { + "kind": "long", + "name": "verbose" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "valueName": "verbose", + "shouldDisplay": true, + "kind": "flag", + "isOptional": true, + "isRepeating": false + }, + { + "names": [ + { + "kind": "long", + "name": "volume" + } + ], + "preferredName": { + "kind": "long", + "name": "volume" + }, + "valueName": "volume", + "shouldDisplay": true, + "kind": "option", + "isOptional": true, + "isRepeating": false + } + ], + "subcommands": [ + { + "commandName": "--check-signature", + "superCommands": [ + "pkgutil" + ], + "shouldDisplay": true, + "arguments": [ + { + "valueName": "pkg-path", + "shouldDisplay": true, + "kind": "positional", + "isOptional": false, + "isRepeating": false + } + ] + }, + { + "commandName": "--expand", + "superCommands": [ + "pkgutil" + ], + "shouldDisplay": true, + "arguments": [ + { + "valueName": "pkg-path", + "shouldDisplay": true, + "kind": "positional", + "isOptional": false, + "isRepeating": false + }, + { + "valueName": "dir-path", + "shouldDisplay": true, + "kind": "positional", + "isOptional": false, + "isRepeating": false + } + ] + }, + { + "commandName": "--forget", + "superCommands": [ + "pkgutil" + ], + "shouldDisplay": true, + "arguments": [ + { + "valueName": "pkg-id", + "shouldDisplay": true, + "kind": "positional", + "isOptional": false, + "isRepeating": false + } + ] + }, + ] + } +} diff --git a/Tests/SwiftlyTests/CommandLineTests.swift b/Tests/SwiftlyTests/CommandLineTests.swift index 762229f8..0e6e4cfd 100644 --- a/Tests/SwiftlyTests/CommandLineTests.swift +++ b/Tests/SwiftlyTests/CommandLineTests.swift @@ -230,13 +230,13 @@ public struct CommandLineTests { } @Test func testPkgutil() async throws { - var config = sys.pkgutil(.verbose).checkSignature(pkgPath: FilePath("path/to/my.pkg")).config() + var config = sys.pkgutil(.verbose).checksignature(pkg_path: FilePath("path/to/my.pkg")).config() #expect(String(describing: config) == "pkgutil --verbose --check-signature path/to/my.pkg") - config = sys.pkgutil(.verbose).expand(pkgPath: FilePath("path/to/my.pkg"), dirPath: FilePath("expand/to/here")).config() + config = sys.pkgutil(.verbose).expand(pkg_path: FilePath("path/to/my.pkg"), dir_path: FilePath("expand/to/here")).config() #expect(String(describing: config) == "pkgutil --verbose --expand path/to/my.pkg expand/to/here") - config = sys.pkgutil(.volume("/Users/foo")).forget(packageId: "com.example.pkg").config() + config = sys.pkgutil(.volume("/Users/foo")).forget(pkg_id: "com.example.pkg").config() #expect(String(describing: config) == "pkgutil --volume /Users/foo --forget com.example.pkg") } From 20678a328cc3d2514249f02dedc379675602711b Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Wed, 7 May 2025 10:36:26 -0400 Subject: [PATCH 12/15] Model the installer command --- Sources/MacOSPlatform/MacOS.swift | 6 +-- Sources/SwiftlyCore/Commands.swift | 61 +---------------------- Sources/SwiftlyCore/CommandsNew.swift | 58 ++++++++++++++++++++- Sources/SwiftlyCore/installer-ext.json | 9 ++++ Sources/SwiftlyCore/installer.json | 61 +++++++++++++++++++++++ Sources/SwiftlyCore/pkgutil.json | 2 +- Sources/TestSwiftly/TestSwiftly.swift | 2 +- Tests/SwiftlyTests/CommandLineTests.swift | 2 +- 8 files changed, 133 insertions(+), 68 deletions(-) create mode 100644 Sources/SwiftlyCore/installer-ext.json create mode 100644 Sources/SwiftlyCore/installer.json diff --git a/Sources/MacOSPlatform/MacOS.swift b/Sources/MacOSPlatform/MacOS.swift index b94d6adf..b752f6d6 100644 --- a/Sources/MacOSPlatform/MacOS.swift +++ b/Sources/MacOSPlatform/MacOS.swift @@ -71,7 +71,7 @@ public struct MacOS: Platform { // If the toolchains go into the default user location then we use the installer to install them await ctx.print("Installing package in user home directory...") - try await sys.installer(.verbose, pkg: tmpFile, target: "CurrentUserHomeDirectory").run(self, quiet: !verbose) + try await sys.installer(.verbose, .pkg(tmpFile), .target("CurrentUserHomeDirectory")).run(self, quiet: !verbose) } else { // Otherwise, we extract the pkg into the requested toolchains directory. await ctx.print("Expanding pkg...") @@ -118,8 +118,8 @@ public struct MacOS: Platform { if ctx.mockedHomeDir == nil { await ctx.print("Extracting the swiftly package...") try await sys.installer( - pkg: archive, - target: "CurrentUserHomeDirectory" + .pkg(archive), + .target("CurrentUserHomeDirectory") ) try? await sys.pkgutil(.volume(userHomeDir)).forget(pkg_id: "org.swift.swiftly").run(self) } else { diff --git a/Sources/SwiftlyCore/Commands.swift b/Sources/SwiftlyCore/Commands.swift index f77768e9..d4dd1912 100644 --- a/Sources/SwiftlyCore/Commands.swift +++ b/Sources/SwiftlyCore/Commands.swift @@ -66,63 +66,4 @@ extension SystemCommand.pkgutilCommand.checksignatureCommand: Runnable {} extension SystemCommand.pkgutilCommand.expandCommand: Runnable {} extension SystemCommand.pkgutilCommand.forgetCommand: Runnable {} -extension SystemCommand { - // system software and package installer tool. - // See installer(1) for more information - public static func installer(executable: Executable = InstallerCommand.defaultExecutable, _ options: InstallerCommand.Option..., pkg: FilePath, target: String) -> InstallerCommand { - self.installer(executable: executable, options, pkg: pkg, target: target) - } - - public static func installer(executable: Executable = InstallerCommand.defaultExecutable, _ options: [InstallerCommand.Option], pkg: FilePath, target: String) -> InstallerCommand { - InstallerCommand(executable: executable, options, pkg: pkg, target: target) - } - - public struct InstallerCommand { - public static var defaultExecutable: Executable { .name("installer") } - - public var executable: Executable - - public var options: [Option] - - public var pkg: FilePath - - public var target: String - - public enum Option { - case verbose - - public func args() -> [String] { - switch self { - case .verbose: - ["-verbose"] - } - } - } - - public init(executable: Executable, _ options: [Option], pkg: FilePath, target: String) { - self.executable = executable - self.options = options - self.pkg = pkg - self.target = target - } - - public func config() -> Configuration { - var args: [String] = [] - - for opt in self.options { - args.append(contentsOf: opt.args()) - } - - args.append(contentsOf: ["-pkg", "\(self.pkg)"]) - args.append(contentsOf: ["-target", self.target]) - - return Configuration( - executable: self.executable, - arguments: Arguments(args), - environment: .inherit - ) - } - } -} - -extension SystemCommand.InstallerCommand: Runnable {} +extension SystemCommand.installerCommand: Runnable {} diff --git a/Sources/SwiftlyCore/CommandsNew.swift b/Sources/SwiftlyCore/CommandsNew.swift index 92cc38d5..82808148 100644 --- a/Sources/SwiftlyCore/CommandsNew.swift +++ b/Sources/SwiftlyCore/CommandsNew.swift @@ -411,6 +411,60 @@ extension SystemCommand { } } +extension SystemCommand { + // system software and package installer tool. See installer(1) for more information. + public static func installer(executable: Executable = installerCommand.defaultExecutable, _ options: installerCommand.Option...) -> installerCommand { + Self.installer(executable: executable, options) + } + + // system software and package installer tool. See installer(1) for more information. + public static func installer(executable: Executable = installerCommand.defaultExecutable, _ options: [installerCommand.Option]) -> installerCommand { + installerCommand(executable: executable, options) + } + + public struct installerCommand { + public static var defaultExecutable: Executable { .name("installer") } + public var executable: Executable + public var options: [Option] + + public enum Option { + case verbose + case pkg(FilePath) + case target(String) + + public func args() -> [String] { + switch self { + case .verbose: + ["-verbose"] + case let .pkg(pkg): + ["-pkg", String(describing: pkg)] + case let .target(target): + ["-target", String(describing: target)] + } + } + } + + public init(executable: Executable, _ options: [installerCommand.Option]) { + self.executable = executable + self.options = options + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + } +} + extension SystemCommand { // Create or operate on universal files. See lipo(1) for more information. public static func lipo(executable: Executable = lipoCommand.defaultExecutable, input_file: FilePath...) -> lipoCommand { @@ -605,12 +659,12 @@ extension SystemCommand { } extension SystemCommand { - // OpenPGP encryption and signing tool. See gpg(1) for more information. + // Query and manipulate macOS Installer packages and receipts. See pkgutil(1) for more information. public static func pkgutil(executable: Executable = pkgutilCommand.defaultExecutable, _ options: pkgutilCommand.Option...) -> pkgutilCommand { Self.pkgutil(executable: executable, options) } - // OpenPGP encryption and signing tool. See gpg(1) for more information. + // Query and manipulate macOS Installer packages and receipts. See pkgutil(1) for more information. public static func pkgutil(executable: Executable = pkgutilCommand.defaultExecutable, _ options: [pkgutilCommand.Option]) -> pkgutilCommand { pkgutilCommand(executable: executable, options) } diff --git a/Sources/SwiftlyCore/installer-ext.json b/Sources/SwiftlyCore/installer-ext.json new file mode 100644 index 00000000..d94c64b4 --- /dev/null +++ b/Sources/SwiftlyCore/installer-ext.json @@ -0,0 +1,9 @@ +{ + "optionsSingleDash": true, + "arguments": [ + { + "path": "pkg", + "type": "file" + } + ] +} diff --git a/Sources/SwiftlyCore/installer.json b/Sources/SwiftlyCore/installer.json new file mode 100644 index 00000000..c5d38411 --- /dev/null +++ b/Sources/SwiftlyCore/installer.json @@ -0,0 +1,61 @@ +{ + "serializationVersion": 0, + "command": { + "commandName": "installer", + "abstract": "system software and package installer tool. See installer(1) for more information.", + "shouldDisplay": true, + "arguments": [ + { + "names": [ + { + "kind": "long", + "name": "verbose" + } + ], + "preferredName": { + "kind": "long", + "name": "verbose" + }, + "valueName": "verbose", + "shouldDisplay": true, + "kind": "flag", + "isOptional": true, + "isRepeating": false + }, + { + "names": [ + { + "kind": "long", + "name": "pkg" + } + ], + "preferredName": { + "kind": "long", + "name": "pkg" + }, + "valueName": "pkg", + "shouldDisplay": true, + "kind": "option", + "isOptional": false, + "isRepeating": false + }, + { + "names": [ + { + "kind": "long", + "name": "target" + } + ], + "preferredName": { + "kind": "long", + "name": "target" + }, + "valueName": "target", + "shouldDisplay": true, + "kind": "option", + "isOptional": false, + "isRepeating": false + } + ] + } +} diff --git a/Sources/SwiftlyCore/pkgutil.json b/Sources/SwiftlyCore/pkgutil.json index 4871b4bc..85dd3149 100644 --- a/Sources/SwiftlyCore/pkgutil.json +++ b/Sources/SwiftlyCore/pkgutil.json @@ -2,7 +2,7 @@ "serializationVersion": 0, "command": { "commandName": "pkgutil", - "abstract": "OpenPGP encryption and signing tool. See gpg(1) for more information.", + "abstract": "Query and manipulate macOS Installer packages and receipts. See pkgutil(1) for more information.", "shouldDisplay": true, "arguments": [ { diff --git a/Sources/TestSwiftly/TestSwiftly.swift b/Sources/TestSwiftly/TestSwiftly.swift index f2c5f3a8..26a64cf3 100644 --- a/Sources/TestSwiftly/TestSwiftly.swift +++ b/Sources/TestSwiftly/TestSwiftly.swift @@ -98,7 +98,7 @@ struct TestSwiftly: AsyncParsableCommand { #if os(Linux) try await sys.tar().extract(.verbose, .compressed, .archive(swiftlyArchive)).run(currentPlatform, quiet: false) #elseif os(macOS) - try await sys.installer(.verbose, pkg: swiftlyArchive, target: "CurrentUserHomeDirectory").run(currentPlatform, quiet: false) + try await sys.installer(.verbose, .pkg(swiftlyArchive), .target("CurrentUserHomeDirectory")).run(currentPlatform, quiet: false) #endif #if os(Linux) diff --git a/Tests/SwiftlyTests/CommandLineTests.swift b/Tests/SwiftlyTests/CommandLineTests.swift index 0e6e4cfd..f9bd4d14 100644 --- a/Tests/SwiftlyTests/CommandLineTests.swift +++ b/Tests/SwiftlyTests/CommandLineTests.swift @@ -241,7 +241,7 @@ public struct CommandLineTests { } @Test func testInstaller() async throws { - var config = sys.installer(.verbose, pkg: FilePath("path/to/my.pkg"), target: "CurrentUserHomeDirectory").config() + var config = sys.installer(.verbose, .pkg(FilePath("path/to/my.pkg")), .target("CurrentUserHomeDirectory")).config() #expect(String(describing: config) == "installer -verbose -pkg path/to/my.pkg -target CurrentUserHomeDirectory") } } From a4d6efaf1e57dd2bb9546b4d4eb426b7e1137f5b Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Wed, 7 May 2025 10:40:31 -0400 Subject: [PATCH 13/15] Rename commands source files. --- .../Commands+Runnable+Output.swift | 67 + Sources/SwiftlyCore/Commands.swift | 11219 +++++++++++++++- Sources/SwiftlyCore/CommandsNew.swift | 11200 --------------- .../GenerateCommandModels.swift | 2 +- 4 files changed, 11243 insertions(+), 11245 deletions(-) create mode 100644 Sources/SwiftlyCore/Commands+Runnable+Output.swift delete mode 100644 Sources/SwiftlyCore/CommandsNew.swift diff --git a/Sources/SwiftlyCore/Commands+Runnable+Output.swift b/Sources/SwiftlyCore/Commands+Runnable+Output.swift new file mode 100644 index 00000000..618596fb --- /dev/null +++ b/Sources/SwiftlyCore/Commands+Runnable+Output.swift @@ -0,0 +1,67 @@ +import Foundation +import SystemPackage + +extension SystemCommand.dsclCommand.readCommand: Output { + public func properties(_ p: Platform) async throws -> [(key: String, value: String)] { + let output = try await self.output(p) + guard let output else { return [] } + + var props: [(key: String, value: String)] = [] + for line in output.components(separatedBy: "\n") { + if case let comps = line.components(separatedBy: ": "), comps.count == 2 { + props.append((key: comps[0], value: comps[1])) + } + } + return props + } +} + +extension SystemCommand.lipoCommand.createCommand: Runnable {} + +extension SystemCommand.pkgbuildCommand: Runnable {} + +extension SystemCommand.getentCommand: Output { + public func entries(_ platform: Platform) async throws -> [[String]] { + let output = try await output(platform) + guard let output else { return [] } + + var entries: [[String]] = [] + for line in output.components(separatedBy: "\n") { + entries.append(line.components(separatedBy: ":")) + } + return entries + } +} + +extension SystemCommand.gitCommand.logCommand: Output {} +extension SystemCommand.gitCommand.diffindexCommand: Runnable {} +extension SystemCommand.gitCommand.initCommand: Runnable {} +extension SystemCommand.gitCommand.commitCommand: Runnable {} + +extension SystemCommand.tarCommand.createCommand: Runnable {} +extension SystemCommand.tarCommand.extractCommand: Runnable {} + +extension SystemCommand.swiftCommand.packageCommand.resetCommand: Runnable {} +extension SystemCommand.swiftCommand.packageCommand.cleanCommand: Runnable {} +extension SystemCommand.swiftCommand.packageCommand.initCommand: Runnable {} +extension SystemCommand.swiftCommand.sdkCommand.installCommand: Runnable {} +extension SystemCommand.swiftCommand.sdkCommand.removeCommand: Runnable {} +extension SystemCommand.swiftCommand.buildCommand: Runnable {} + +extension SystemCommand.makeCommand: Runnable {} +extension SystemCommand.makeCommand.installCommand: Runnable {} + +extension SystemCommand.stripCommand: Runnable {} + +extension SystemCommand.sha256sumCommand: Output {} + +extension SystemCommand.productbuildCommand: Runnable {} + +extension SystemCommand.gpgCommand.importCommand: Runnable {} +extension SystemCommand.gpgCommand.verifyCommand: Runnable {} + +extension SystemCommand.pkgutilCommand.checksignatureCommand: Runnable {} +extension SystemCommand.pkgutilCommand.expandCommand: Runnable {} +extension SystemCommand.pkgutilCommand.forgetCommand: Runnable {} + +extension SystemCommand.installerCommand: Runnable {} diff --git a/Sources/SwiftlyCore/Commands.swift b/Sources/SwiftlyCore/Commands.swift index d4dd1912..82808148 100644 --- a/Sources/SwiftlyCore/Commands.swift +++ b/Sources/SwiftlyCore/Commands.swift @@ -1,69 +1,11200 @@ -import Foundation +// +// DO NOT EDIT THIS FILE: It is generated using the JSON files in this directory (based on swift-argument-parser --experimental-dump-help format). +// REGENERATE: swift run generate-command-models && swift run swiftformat Sources/SwiftlyCore/Commands*.swift +// import SystemPackage -// This file contains a set of system commands that's used by Swiftly and its related tests and tooling +extension SystemCommand { + // Directory Service command line utility for macOS. See dscl(1) for more information. + public static func dscl(executable: Executable = dsclCommand.defaultExecutable, datasource: String? = nil) -> dsclCommand { + dsclCommand(executable: executable, datasource: datasource) + } + + public struct dsclCommand { + public static var defaultExecutable: Executable { .name("dscl") } + public var executable: Executable + public var datasource: String? + + public init(executable: Executable, datasource: String? = nil) { + self.executable = executable + self.datasource = datasource + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + if let datasource = self.datasource { genArgs += [datasource.description] } + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + + public func read(path: FilePath? = nil, key: [String]?) -> readCommand { + readCommand(parent: self, path: path, key: key) + } + + public struct readCommand { + public var parent: dsclCommand + public var path: FilePath? + public var key: [String]? + + public init(parent: dsclCommand, path: FilePath? = nil, key: [String]?) { + self.parent = parent + self.path = path + self.key = key + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("-read") + + if let path = self.path { genArgs += [path.description] } + if let key = self.key { genArgs += key.map(\.description) } + + c.arguments = .init(genArgs) + + return c + } + } + } +} + +extension SystemCommand { + // get entries from Name Service Switch libraries. See getent(1) for more information. + public static func getent(executable: Executable = getentCommand.defaultExecutable, database: String, key: String...) -> getentCommand { + Self.getent(executable: executable, database: database, key: key) + } + + // get entries from Name Service Switch libraries. See getent(1) for more information. + public static func getent(executable: Executable = getentCommand.defaultExecutable, database: String, key: [String]) -> getentCommand { + getentCommand(executable: executable, database: database, key: key) + } + + public struct getentCommand { + public static var defaultExecutable: Executable { .name("getent") } + public var executable: Executable + public var database: String + public var key: [String] + + public init(executable: Executable, database: String, key: [String]) { + self.executable = executable + self.database = database + self.key = key + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + genArgs += [self.database.description] + genArgs += self.key.map(\.description) + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + } +} + +extension SystemCommand { + // the stupid content tracker. See git(1) for more information. + public static func git(executable: Executable = gitCommand.defaultExecutable, _ options: gitCommand.Option...) -> gitCommand { + Self.git(executable: executable, options) + } + + // the stupid content tracker. See git(1) for more information. + public static func git(executable: Executable = gitCommand.defaultExecutable, _ options: [gitCommand.Option]) -> gitCommand { + gitCommand(executable: executable, options) + } + + public struct gitCommand { + public static var defaultExecutable: Executable { .name("git") } + public var executable: Executable + public var options: [Option] + + public enum Option { + case workingDir(FilePath) + + public func args() -> [String] { + switch self { + case let .workingDir(workingDir): + ["-C", String(describing: workingDir)] + } + } + } + + public init(executable: Executable, _ options: [gitCommand.Option]) { + self.executable = executable + self.options = options + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + + public func _init() -> initCommand { + initCommand(parent: self) + } + + public struct initCommand { + public var parent: gitCommand + + public init(parent: gitCommand) { + self.parent = parent + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("init") + + c.arguments = .init(genArgs) + + return c + } + } + + public func commit(_ options: commitCommand.Option...) -> commitCommand { + self.commit(options) + } + + public func commit(_ options: [commitCommand.Option]) -> commitCommand { + commitCommand(parent: self, options) + } + + public struct commitCommand { + public var parent: gitCommand + public var options: [Option] + + public enum Option { + case allow_empty + case allow_empty_message + case message(String) + + public func args() -> [String] { + switch self { + case .allow_empty: + ["--allow-empty"] + case .allow_empty_message: + ["--allow-empty-message"] + case let .message(message): + ["--message", String(describing: message)] + } + } + } + + public init(parent: gitCommand, _ options: [commitCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("commit") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + public func log(_ options: logCommand.Option...) -> logCommand { + self.log(options) + } + + public func log(_ options: [logCommand.Option]) -> logCommand { + logCommand(parent: self, options) + } + + public struct logCommand { + public var parent: gitCommand + public var options: [Option] + + public enum Option { + case max_count(String) + case pretty(String) + + public func args() -> [String] { + switch self { + case let .max_count(max_count): + ["--max-count", String(describing: max_count)] + case let .pretty(pretty): + ["--pretty", String(describing: pretty)] + } + } + } + + public init(parent: gitCommand, _ options: [logCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("log") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + public func diffindex(_ options: diffindexCommand.Option..., tree_ish: String) -> diffindexCommand { + self.diffindex(options, tree_ish: tree_ish) + } + + public func diffindex(_ options: [diffindexCommand.Option], tree_ish: String) -> diffindexCommand { + diffindexCommand(parent: self, options, tree_ish: tree_ish) + } + + public struct diffindexCommand { + public var parent: gitCommand + public var options: [Option] + public var tree_ish: String + + public enum Option { + case quiet + + public func args() -> [String] { + switch self { + case .quiet: + ["--quiet"] + } + } + } + + public init(parent: gitCommand, _ options: [diffindexCommand.Option], tree_ish: String) { + self.parent = parent + self.options = options + self.tree_ish = tree_ish + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("diff-index") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.tree_ish.description] + + c.arguments = .init(genArgs) + + return c + } + } + } +} + +extension SystemCommand { + // OpenPGP encryption and signing tool. See gpg(1) for more information. + public static func gpg(executable: Executable = gpgCommand.defaultExecutable) -> gpgCommand { + gpgCommand(executable: executable) + } + + public struct gpgCommand { + public static var defaultExecutable: Executable { .name("gpg") } + public var executable: Executable + + public init(executable: Executable) { + self.executable = executable + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } -extension SystemCommand.dsclCommand.readCommand: Output { - public func properties(_ p: Platform) async throws -> [(key: String, value: String)] { - let output = try await self.output(p) - guard let output else { return [] } + public func _import(key: FilePath...) -> importCommand { + self._import(key: key) + } + + public func _import(key: [FilePath]) -> importCommand { + importCommand(parent: self, key: key) + } + + public struct importCommand { + public var parent: gpgCommand + public var key: [FilePath] + + public init(parent: gpgCommand, key: [FilePath]) { + self.parent = parent + self.key = key + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("--import") + + genArgs += self.key.map(\.description) + + c.arguments = .init(genArgs) + + return c + } + } + + public func verify(detached_signature: FilePath? = nil, signed_data: FilePath? = nil) -> verifyCommand { + verifyCommand(parent: self, detached_signature: detached_signature, signed_data: signed_data) + } + + public struct verifyCommand { + public var parent: gpgCommand + public var detached_signature: FilePath? + public var signed_data: FilePath? + + public init(parent: gpgCommand, detached_signature: FilePath? = nil, signed_data: FilePath? = nil) { + self.parent = parent + self.detached_signature = detached_signature + self.signed_data = signed_data + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("--verify") + + if let detached_signature = self.detached_signature { genArgs += [detached_signature.description] } + if let signed_data = self.signed_data { genArgs += [signed_data.description] } + + c.arguments = .init(genArgs) + + return c + } + } + } +} + +extension SystemCommand { + // system software and package installer tool. See installer(1) for more information. + public static func installer(executable: Executable = installerCommand.defaultExecutable, _ options: installerCommand.Option...) -> installerCommand { + Self.installer(executable: executable, options) + } + + // system software and package installer tool. See installer(1) for more information. + public static func installer(executable: Executable = installerCommand.defaultExecutable, _ options: [installerCommand.Option]) -> installerCommand { + installerCommand(executable: executable, options) + } + + public struct installerCommand { + public static var defaultExecutable: Executable { .name("installer") } + public var executable: Executable + public var options: [Option] + + public enum Option { + case verbose + case pkg(FilePath) + case target(String) + + public func args() -> [String] { + switch self { + case .verbose: + ["-verbose"] + case let .pkg(pkg): + ["-pkg", String(describing: pkg)] + case let .target(target): + ["-target", String(describing: target)] + } + } + } + + public init(executable: Executable, _ options: [installerCommand.Option]) { + self.executable = executable + self.options = options + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + } +} + +extension SystemCommand { + // Create or operate on universal files. See lipo(1) for more information. + public static func lipo(executable: Executable = lipoCommand.defaultExecutable, input_file: FilePath...) -> lipoCommand { + Self.lipo(executable: executable, input_file: input_file) + } + + // Create or operate on universal files. See lipo(1) for more information. + public static func lipo(executable: Executable = lipoCommand.defaultExecutable, input_file: [FilePath]) -> lipoCommand { + lipoCommand(executable: executable, input_file: input_file) + } + + public struct lipoCommand { + public static var defaultExecutable: Executable { .name("lipo") } + public var executable: Executable + public var input_file: [FilePath] + + public init(executable: Executable, input_file: [FilePath]) { + self.executable = executable + self.input_file = input_file + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + genArgs += self.input_file.map(\.description) + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + + public func create(_ options: createCommand.Option...) -> createCommand { + self.create(options) + } + + public func create(_ options: [createCommand.Option]) -> createCommand { + createCommand(parent: self, options) + } + + public struct createCommand { + public var parent: lipoCommand + public var options: [Option] + + public enum Option { + case output(FilePath) - var props: [(key: String, value: String)] = [] - for line in output.components(separatedBy: "\n") { - if case let comps = line.components(separatedBy: ": "), comps.count == 2 { - props.append((key: comps[0], value: comps[1])) + public func args() -> [String] { + switch self { + case let .output(output): + ["-output", String(describing: output)] + } + } + } + + public init(parent: lipoCommand, _ options: [createCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("-create") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + } +} + +extension SystemCommand { + // make utility to maintain groups of programs. See make(1) for more information. + public static func make(executable: Executable = makeCommand.defaultExecutable) -> makeCommand { + makeCommand(executable: executable) + } + + public struct makeCommand { + public static var defaultExecutable: Executable { .name("make") } + public var executable: Executable + + public init(executable: Executable) { + self.executable = executable + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + + public func install() -> installCommand { + installCommand(parent: self) + } + + public struct installCommand { + public var parent: makeCommand + + public init(parent: makeCommand) { + self.parent = parent + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("install") + + c.arguments = .init(genArgs) + + return c } } - return props } } -extension SystemCommand.lipoCommand.createCommand: Runnable {} +extension SystemCommand { + // Build a macOS Installer component package from on-disk files. See pkgbuild(1) for more information. + public static func pkgbuild(executable: Executable = pkgbuildCommand.defaultExecutable, _ options: pkgbuildCommand.Option..., package_output_path: FilePath) -> pkgbuildCommand { + Self.pkgbuild(executable: executable, options, package_output_path: package_output_path) + } + + // Build a macOS Installer component package from on-disk files. See pkgbuild(1) for more information. + public static func pkgbuild(executable: Executable = pkgbuildCommand.defaultExecutable, _ options: [pkgbuildCommand.Option], package_output_path: FilePath) -> pkgbuildCommand { + pkgbuildCommand(executable: executable, options, package_output_path: package_output_path) + } + + public struct pkgbuildCommand { + public static var defaultExecutable: Executable { .name("pkgbuild") } + public var executable: Executable + public var options: [Option] + public var package_output_path: FilePath + + public enum Option { + case sign(String) + case identifier(String) + case version(String) + case install_location(FilePath) + case root(FilePath) + + public func args() -> [String] { + switch self { + case let .sign(sign): + ["--sign", String(describing: sign)] + case let .identifier(identifier): + ["--identifier", String(describing: identifier)] + case let .version(version): + ["--version", String(describing: version)] + case let .install_location(install_location): + ["--install-location", String(describing: install_location)] + case let .root(root): + ["--root", String(describing: root)] + } + } + } + + public init(executable: Executable, _ options: [pkgbuildCommand.Option], package_output_path: FilePath) { + self.executable = executable + self.options = options + self.package_output_path = package_output_path + } -extension SystemCommand.pkgbuildCommand: Runnable {} + public func config() -> Configuration { + var genArgs: [String] = [] -extension SystemCommand.getentCommand: Output { - public func entries(_ platform: Platform) async throws -> [[String]] { - let output = try await output(platform) - guard let output else { return [] } + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.package_output_path.description] - var entries: [[String]] = [] - for line in output.components(separatedBy: "\n") { - entries.append(line.components(separatedBy: ":")) + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) } - return entries } } -extension SystemCommand.gitCommand.logCommand: Output {} -extension SystemCommand.gitCommand.diffindexCommand: Runnable {} -extension SystemCommand.gitCommand.initCommand: Runnable {} -extension SystemCommand.gitCommand.commitCommand: Runnable {} +extension SystemCommand { + // Query and manipulate macOS Installer packages and receipts. See pkgutil(1) for more information. + public static func pkgutil(executable: Executable = pkgutilCommand.defaultExecutable, _ options: pkgutilCommand.Option...) -> pkgutilCommand { + Self.pkgutil(executable: executable, options) + } + + // Query and manipulate macOS Installer packages and receipts. See pkgutil(1) for more information. + public static func pkgutil(executable: Executable = pkgutilCommand.defaultExecutable, _ options: [pkgutilCommand.Option]) -> pkgutilCommand { + pkgutilCommand(executable: executable, options) + } + + public struct pkgutilCommand { + public static var defaultExecutable: Executable { .name("pkgutil") } + public var executable: Executable + public var options: [Option] + + public enum Option { + case verbose + case volume(FilePath) + + public func args() -> [String] { + switch self { + case .verbose: + ["--verbose"] + case let .volume(volume): + ["--volume", String(describing: volume)] + } + } + } + + public init(executable: Executable, _ options: [pkgutilCommand.Option]) { + self.executable = executable + self.options = options + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + + public func checksignature(pkg_path: FilePath) -> checksignatureCommand { + checksignatureCommand(parent: self, pkg_path: pkg_path) + } + + public struct checksignatureCommand { + public var parent: pkgutilCommand + public var pkg_path: FilePath -extension SystemCommand.tarCommand.createCommand: Runnable {} -extension SystemCommand.tarCommand.extractCommand: Runnable {} + public init(parent: pkgutilCommand, pkg_path: FilePath) { + self.parent = parent + self.pkg_path = pkg_path + } -extension SystemCommand.swiftCommand.packageCommand.resetCommand: Runnable {} -extension SystemCommand.swiftCommand.packageCommand.cleanCommand: Runnable {} -extension SystemCommand.swiftCommand.packageCommand.initCommand: Runnable {} -extension SystemCommand.swiftCommand.sdkCommand.installCommand: Runnable {} -extension SystemCommand.swiftCommand.sdkCommand.removeCommand: Runnable {} -extension SystemCommand.swiftCommand.buildCommand: Runnable {} + public func config() -> Configuration { + var c = self.parent.config() -extension SystemCommand.makeCommand: Runnable {} -extension SystemCommand.makeCommand.installCommand: Runnable {} + var genArgs = c.arguments.storage.map(\.description) -extension SystemCommand.stripCommand: Runnable {} + genArgs.append("--check-signature") -extension SystemCommand.sha256sumCommand: Output {} + genArgs += [self.pkg_path.description] -extension SystemCommand.productbuildCommand: Runnable {} + c.arguments = .init(genArgs) -extension SystemCommand.gpgCommand.importCommand: Runnable {} -extension SystemCommand.gpgCommand.verifyCommand: Runnable {} + return c + } + } -extension SystemCommand.pkgutilCommand.checksignatureCommand: Runnable {} -extension SystemCommand.pkgutilCommand.expandCommand: Runnable {} -extension SystemCommand.pkgutilCommand.forgetCommand: Runnable {} + public func expand(pkg_path: FilePath, dir_path: FilePath) -> expandCommand { + expandCommand(parent: self, pkg_path: pkg_path, dir_path: dir_path) + } -extension SystemCommand.installerCommand: Runnable {} + public struct expandCommand { + public var parent: pkgutilCommand + public var pkg_path: FilePath + public var dir_path: FilePath + + public init(parent: pkgutilCommand, pkg_path: FilePath, dir_path: FilePath) { + self.parent = parent + self.pkg_path = pkg_path + self.dir_path = dir_path + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("--expand") + + genArgs += [self.pkg_path.description] + genArgs += [self.dir_path.description] + + c.arguments = .init(genArgs) + + return c + } + } + + public func forget(pkg_id: String) -> forgetCommand { + forgetCommand(parent: self, pkg_id: pkg_id) + } + + public struct forgetCommand { + public var parent: pkgutilCommand + public var pkg_id: String + + public init(parent: pkgutilCommand, pkg_id: String) { + self.parent = parent + self.pkg_id = pkg_id + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("--forget") + + genArgs += [self.pkg_id.description] + + c.arguments = .init(genArgs) + + return c + } + } + } +} + +extension SystemCommand { + // Build a product archive for the macOS Installer or the Mac App Store. See productbuild(1) for more information. + public static func productbuild(executable: Executable = productbuildCommand.defaultExecutable, _ options: productbuildCommand.Option..., output_path: FilePath) -> productbuildCommand { + Self.productbuild(executable: executable, options, output_path: output_path) + } + + // Build a product archive for the macOS Installer or the Mac App Store. See productbuild(1) for more information. + public static func productbuild(executable: Executable = productbuildCommand.defaultExecutable, _ options: [productbuildCommand.Option], output_path: FilePath) -> productbuildCommand { + productbuildCommand(executable: executable, options, output_path: output_path) + } + + public struct productbuildCommand { + public static var defaultExecutable: Executable { .name("productbuild") } + public var executable: Executable + public var options: [Option] + public var output_path: FilePath + + public enum Option { + case synthesize + case dist_path(FilePath) + case pkg_path(FilePath) + case search_path(FilePath) + case cert(String) + + public func args() -> [String] { + switch self { + case .synthesize: + ["--synthesize"] + case let .dist_path(dist_path): + ["--distribution", String(describing: dist_path)] + case let .pkg_path(pkg_path): + ["--package", String(describing: pkg_path)] + case let .search_path(search_path): + ["--package-path", String(describing: search_path)] + case let .cert(cert): + ["--sign", String(describing: cert)] + } + } + } + + public init(executable: Executable, _ options: [productbuildCommand.Option], output_path: FilePath) { + self.executable = executable + self.options = options + self.output_path = output_path + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.output_path.description] + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + } +} + +extension SystemCommand { + // calculate a message-digest fingerprint (checksum) for a file. See sha256sum(1) for more information. + public static func sha256sum(executable: Executable = sha256sumCommand.defaultExecutable, _ options: sha256sumCommand.Option..., files: FilePath...) -> sha256sumCommand { + Self.sha256sum(executable: executable, options, files: files) + } + + // calculate a message-digest fingerprint (checksum) for a file. See sha256sum(1) for more information. + public static func sha256sum(executable: Executable = sha256sumCommand.defaultExecutable, _ options: [sha256sumCommand.Option], files: [FilePath]) -> sha256sumCommand { + sha256sumCommand(executable: executable, options, files: files) + } + + public struct sha256sumCommand { + public static var defaultExecutable: Executable { .name("sha256sum") } + public var executable: Executable + public var options: [Option] + public var files: [FilePath] + + public enum Option { + case verbose + + public func args() -> [String] { + switch self { + case .verbose: + ["--verbose"] + } + } + } + + public init(executable: Executable, _ options: [sha256sumCommand.Option], files: [FilePath]) { + self.executable = executable + self.options = options + self.files = files + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += self.files.map(\.description) + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + } +} + +extension SystemCommand { + // remove symbols. See strip(1) for more information. + public static func strip(executable: Executable = stripCommand.defaultExecutable, name: FilePath...) -> stripCommand { + Self.strip(executable: executable, name: name) + } + + // remove symbols. See strip(1) for more information. + public static func strip(executable: Executable = stripCommand.defaultExecutable, name: [FilePath]) -> stripCommand { + stripCommand(executable: executable, name: name) + } + + public struct stripCommand { + public static var defaultExecutable: Executable { .name("strip") } + public var executable: Executable + public var name: [FilePath] + + public init(executable: Executable, name: [FilePath]) { + self.executable = executable + self.name = name + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + genArgs += self.name.map(\.description) + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + } +} + +extension SystemCommand { + // Swift compiler + public static func swift(executable: Executable = swiftCommand.defaultExecutable) -> swiftCommand { + swiftCommand(executable: executable) + } + + public struct swiftCommand { + public static var defaultExecutable: Executable { .name("swift") } + public var executable: Executable + + public init(executable: Executable) { + self.executable = executable + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + + // Build sources into binary products + public func build(_ options: buildCommand.Option...) -> buildCommand { + self.build(options) + } + + // Build sources into binary products + public func build(_ options: [buildCommand.Option]) -> buildCommand { + buildCommand(parent: self, options) + } + + public struct buildCommand { + public var parent: swiftCommand + public var options: [Option] + + public enum Option { + case package_path(FilePath) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(FilePath) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case build_tests + case enable_code_coverage + case show_bin_path + case print_manifest_job_graph + case target(String) + case product(String) + case enable_xctest + case enable_swift_testing + case enable_experimental_swift_testing + case traits(String) + case enable_all_traits + case disable_default_traits + case static_swift_stdlib + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .build_tests: + ["--build-tests"] + case .enable_code_coverage: + ["--enable-code-coverage"] + case .show_bin_path: + ["--show-bin-path"] + case .print_manifest_job_graph: + ["--print-manifest-job-graph"] + case let .target(target): + ["--target", String(describing: target)] + case let .product(product): + ["--product", String(describing: product)] + case .enable_xctest: + ["--enable-xctest"] + case .enable_swift_testing: + ["--enable-swift-testing"] + case .enable_experimental_swift_testing: + ["--enable-experimental-swift-testing"] + case let .traits(traits): + ["--traits", String(describing: traits)] + case .enable_all_traits: + ["--enable-all-traits"] + case .disable_default_traits: + ["--disable-default-traits"] + case .static_swift_stdlib: + ["--static-swift-stdlib"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: swiftCommand, _ options: [buildCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("build") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Perform operations on Swift packages + public func package(_ options: packageCommand.Option...) -> packageCommand { + self.package(options) + } + + // Perform operations on Swift packages + public func package(_ options: [packageCommand.Option]) -> packageCommand { + packageCommand(parent: self, options) + } + + public struct packageCommand { + public var parent: swiftCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: swiftCommand, _ options: [packageCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("package") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + + // Add a package dependency to the manifest + public func adddependency(_ options: adddependencyCommand.Option..., dependency: String) -> adddependencyCommand { + self.adddependency(options, dependency: dependency) + } + + // Add a package dependency to the manifest + public func adddependency(_ options: [adddependencyCommand.Option], dependency: String) -> adddependencyCommand { + adddependencyCommand(parent: self, options, dependency: dependency) + } + + public struct adddependencyCommand { + public var parent: packageCommand + public var options: [Option] + public var dependency: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case exact(String) + case revision(String) + case branch(String) + case from(String) + case up_to_next_minor_from(String) + case to(String) + case type(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .exact(exact): + ["--exact", String(describing: exact)] + case let .revision(revision): + ["--revision", String(describing: revision)] + case let .branch(branch): + ["--branch", String(describing: branch)] + case let .from(from): + ["--from", String(describing: from)] + case let .up_to_next_minor_from(up_to_next_minor_from): + ["--up-to-next-minor-from", String(describing: up_to_next_minor_from)] + case let .to(to): + ["--to", String(describing: to)] + case let .type(type): + ["--type", String(describing: type)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [adddependencyCommand.Option], dependency: String) { + self.parent = parent + self.options = options + self.dependency = dependency + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("add-dependency") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.dependency.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Add a new product to the manifest + public func addproduct(_ options: addproductCommand.Option..., name: String) -> addproductCommand { + self.addproduct(options, name: name) + } + + // Add a new product to the manifest + public func addproduct(_ options: [addproductCommand.Option], name: String) -> addproductCommand { + addproductCommand(parent: self, options, name: name) + } + + public struct addproductCommand { + public var parent: packageCommand + public var options: [Option] + public var name: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case type(String) + case targets(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .type(type): + ["--type", String(describing: type)] + case let .targets(targets): + ["--targets", String(describing: targets)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [addproductCommand.Option], name: String) { + self.parent = parent + self.options = options + self.name = name + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("add-product") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.name.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Add a new target to the manifest + public func addtarget(_ options: addtargetCommand.Option..., name: String) -> addtargetCommand { + self.addtarget(options, name: name) + } + + // Add a new target to the manifest + public func addtarget(_ options: [addtargetCommand.Option], name: String) -> addtargetCommand { + addtargetCommand(parent: self, options, name: name) + } + + public struct addtargetCommand { + public var parent: packageCommand + public var options: [Option] + public var name: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case type(String) + case dependencies(String) + case url(String) + case path(String) + case checksum(String) + case testing_library(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .type(type): + ["--type", String(describing: type)] + case let .dependencies(dependencies): + ["--dependencies", String(describing: dependencies)] + case let .url(url): + ["--url", String(describing: url)] + case let .path(path): + ["--path", String(describing: path)] + case let .checksum(checksum): + ["--checksum", String(describing: checksum)] + case let .testing_library(testing_library): + ["--testing-library", String(describing: testing_library)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [addtargetCommand.Option], name: String) { + self.parent = parent + self.options = options + self.name = name + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("add-target") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.name.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Add a new target dependency to the manifest + public func addtargetdependency(_ options: addtargetdependencyCommand.Option..., dependency_name: String, target_name: String) -> addtargetdependencyCommand { + self.addtargetdependency(options, dependency_name: dependency_name, target_name: target_name) + } + + // Add a new target dependency to the manifest + public func addtargetdependency(_ options: [addtargetdependencyCommand.Option], dependency_name: String, target_name: String) -> addtargetdependencyCommand { + addtargetdependencyCommand(parent: self, options, dependency_name: dependency_name, target_name: target_name) + } + + public struct addtargetdependencyCommand { + public var parent: packageCommand + public var options: [Option] + public var dependency_name: String + public var target_name: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case package(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .package(package): + ["--package", String(describing: package)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [addtargetdependencyCommand.Option], dependency_name: String, target_name: String) { + self.parent = parent + self.options = options + self.dependency_name = dependency_name + self.target_name = target_name + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("add-target-dependency") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.dependency_name.description] + genArgs += [self.target_name.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Delete build artifacts + public func clean(_ options: cleanCommand.Option...) -> cleanCommand { + self.clean(options) + } + + // Delete build artifacts + public func clean(_ options: [cleanCommand.Option]) -> cleanCommand { + cleanCommand(parent: self, options) + } + + public struct cleanCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [cleanCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("clean") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Purge the global repository cache. + public func purgecache(_ options: purgecacheCommand.Option...) -> purgecacheCommand { + self.purgecache(options) + } + + // Purge the global repository cache. + public func purgecache(_ options: [purgecacheCommand.Option]) -> purgecacheCommand { + purgecacheCommand(parent: self, options) + } + + public struct purgecacheCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [purgecacheCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("purge-cache") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Reset the complete cache/build directory + public func reset(_ options: resetCommand.Option...) -> resetCommand { + self.reset(options) + } + + // Reset the complete cache/build directory + public func reset(_ options: [resetCommand.Option]) -> resetCommand { + resetCommand(parent: self, options) + } + + public struct resetCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [resetCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("reset") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Update package dependencies + public func update(_ options: updateCommand.Option..., packages: [String]?) -> updateCommand { + self.update(options, packages: packages) + } + + // Update package dependencies + public func update(_ options: [updateCommand.Option], packages: [String]?) -> updateCommand { + updateCommand(parent: self, options, packages: packages) + } + + public struct updateCommand { + public var parent: packageCommand + public var options: [Option] + public var packages: [String]? + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case dry_run + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .dry_run: + ["--dry-run"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [updateCommand.Option], packages: [String]?) { + self.parent = parent + self.options = options + self.packages = packages + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("update") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + if let packages = self.packages { genArgs += packages.map(\.description) } + + c.arguments = .init(genArgs) + + return c + } + } + + // Describe the current package + public func describe(_ options: describeCommand.Option...) -> describeCommand { + self.describe(options) + } + + // Describe the current package + public func describe(_ options: [describeCommand.Option]) -> describeCommand { + describeCommand(parent: self, options) + } + + public struct describeCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case type(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .type(type): + ["--type", String(describing: type)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [describeCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("describe") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Initialize a new package + public func _init(_ options: initCommand.Option...) -> initCommand { + self._init(options) + } + + // Initialize a new package + public func _init(_ options: [initCommand.Option]) -> initCommand { + initCommand(parent: self, options) + } + + public struct initCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(FilePath) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case type(String) + case enable_xctest + case enable_swift_testing + case enable_experimental_swift_testing + case name(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .type(type): + ["--type", String(describing: type)] + case .enable_xctest: + ["--enable-xctest"] + case .enable_swift_testing: + ["--enable-swift-testing"] + case .enable_experimental_swift_testing: + ["--enable-experimental-swift-testing"] + case let .name(name): + ["--name", String(describing: name)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [initCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("init") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + public func _format(_ options: _formatCommand.Option..., swift_format_flags: [String]?) -> _formatCommand { + self._format(options, swift_format_flags: swift_format_flags) + } + + public func _format(_ options: [_formatCommand.Option], swift_format_flags: [String]?) -> _formatCommand { + _formatCommand(parent: self, options, swift_format_flags: swift_format_flags) + } + + public struct _formatCommand { + public var parent: packageCommand + public var options: [Option] + public var swift_format_flags: [String]? + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [_formatCommand.Option], swift_format_flags: [String]?) { + self.parent = parent + self.options = options + self.swift_format_flags = swift_format_flags + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("_format") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + if let swift_format_flags = self.swift_format_flags { genArgs += swift_format_flags.map(\.description) } + + c.arguments = .init(genArgs) + + return c + } + } + + // Offers the ability to install executable products of the current package. + public func experimentalinstall(_ options: experimentalinstallCommand.Option...) -> experimentalinstallCommand { + self.experimentalinstall(options) + } + + // Offers the ability to install executable products of the current package. + public func experimentalinstall(_ options: [experimentalinstallCommand.Option]) -> experimentalinstallCommand { + experimentalinstallCommand(parent: self, options) + } + + public struct experimentalinstallCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case product(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .product(product): + ["--product", String(describing: product)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [experimentalinstallCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("experimental-install") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Offers the ability to uninstall executable products previously installed by `swift package experimental-install`. + public func experimentaluninstall(_ options: experimentaluninstallCommand.Option..., name: String) -> experimentaluninstallCommand { + self.experimentaluninstall(options, name: name) + } + + // Offers the ability to uninstall executable products previously installed by `swift package experimental-install`. + public func experimentaluninstall(_ options: [experimentaluninstallCommand.Option], name: String) -> experimentaluninstallCommand { + experimentaluninstallCommand(parent: self, options, name: name) + } + + public struct experimentaluninstallCommand { + public var parent: packageCommand + public var options: [Option] + public var name: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [experimentaluninstallCommand.Option], name: String) { + self.parent = parent + self.options = options + self.name = name + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("experimental-uninstall") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.name.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Diagnose API-breaking changes to Swift modules in a package + public func diagnoseapibreakingchanges(_ options: diagnoseapibreakingchangesCommand.Option..., treeish: String) -> diagnoseapibreakingchangesCommand { + self.diagnoseapibreakingchanges(options, treeish: treeish) + } + + // Diagnose API-breaking changes to Swift modules in a package + public func diagnoseapibreakingchanges(_ options: [diagnoseapibreakingchangesCommand.Option], treeish: String) -> diagnoseapibreakingchangesCommand { + diagnoseapibreakingchangesCommand(parent: self, options, treeish: treeish) + } + + public struct diagnoseapibreakingchangesCommand { + public var parent: packageCommand + public var options: [Option] + public var treeish: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case breakage_allowlist_path(String) + case products(String) + case targets(String) + case traits(String) + case enable_all_traits + case disable_default_traits + case baseline_dir(String) + case regenerate_baseline + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .breakage_allowlist_path(breakage_allowlist_path): + ["--breakage-allowlist-path", String(describing: breakage_allowlist_path)] + case let .products(products): + ["--products", String(describing: products)] + case let .targets(targets): + ["--targets", String(describing: targets)] + case let .traits(traits): + ["--traits", String(describing: traits)] + case .enable_all_traits: + ["--enable-all-traits"] + case .disable_default_traits: + ["--disable-default-traits"] + case let .baseline_dir(baseline_dir): + ["--baseline-dir", String(describing: baseline_dir)] + case .regenerate_baseline: + ["--regenerate-baseline"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [diagnoseapibreakingchangesCommand.Option], treeish: String) { + self.parent = parent + self.options = options + self.treeish = treeish + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("diagnose-api-breaking-changes") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.treeish.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Deprecated - use `swift package diagnose-api-breaking-changes` instead + public func experimentalapidiff(_ options: experimentalapidiffCommand.Option..., args: [String]?) -> experimentalapidiffCommand { + self.experimentalapidiff(options, args: args) + } + + // Deprecated - use `swift package diagnose-api-breaking-changes` instead + public func experimentalapidiff(_ options: [experimentalapidiffCommand.Option], args: [String]?) -> experimentalapidiffCommand { + experimentalapidiffCommand(parent: self, options, args: args) + } + + public struct experimentalapidiffCommand { + public var parent: packageCommand + public var options: [Option] + public var args: [String]? + + public enum Option { + case version + case help + + public func args() -> [String] { + switch self { + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [experimentalapidiffCommand.Option], args: [String]?) { + self.parent = parent + self.options = options + self.args = args + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("experimental-api-diff") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + if let args = self.args { genArgs += args.map(\.description) } + + c.arguments = .init(genArgs) + + return c + } + } + + // Dump Symbol Graph + public func dumpsymbolgraph(_ options: dumpsymbolgraphCommand.Option...) -> dumpsymbolgraphCommand { + self.dumpsymbolgraph(options) + } + + // Dump Symbol Graph + public func dumpsymbolgraph(_ options: [dumpsymbolgraphCommand.Option]) -> dumpsymbolgraphCommand { + dumpsymbolgraphCommand(parent: self, options) + } + + public struct dumpsymbolgraphCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case pretty_print + case skip_synthesized_members + case minimum_access_level(String) + case skip_inherited_docs + case include_spi_symbols + case emit_extension_block_symbols + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .pretty_print: + ["--pretty-print"] + case .skip_synthesized_members: + ["--skip-synthesized-members"] + case let .minimum_access_level(minimum_access_level): + ["--minimum-access-level", String(describing: minimum_access_level)] + case .skip_inherited_docs: + ["--skip-inherited-docs"] + case .include_spi_symbols: + ["--include-spi-symbols"] + case .emit_extension_block_symbols: + ["--emit-extension-block-symbols"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [dumpsymbolgraphCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("dump-symbol-graph") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + public func dumppif(_ options: dumppifCommand.Option...) -> dumppifCommand { + self.dumppif(options) + } + + public func dumppif(_ options: [dumppifCommand.Option]) -> dumppifCommand { + dumppifCommand(parent: self, options) + } + + public struct dumppifCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case preserve_structure + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .preserve_structure: + ["--preserve-structure"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [dumppifCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("dump-pif") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Print parsed Package.swift as JSON + public func dumppackage(_ options: dumppackageCommand.Option...) -> dumppackageCommand { + self.dumppackage(options) + } + + // Print parsed Package.swift as JSON + public func dumppackage(_ options: [dumppackageCommand.Option]) -> dumppackageCommand { + dumppackageCommand(parent: self, options) + } + + public struct dumppackageCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [dumppackageCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("dump-package") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Put a package in editable mode + public func edit(_ options: editCommand.Option..., package_identity: String) -> editCommand { + self.edit(options, package_identity: package_identity) + } + + // Put a package in editable mode + public func edit(_ options: [editCommand.Option], package_identity: String) -> editCommand { + editCommand(parent: self, options, package_identity: package_identity) + } + + public struct editCommand { + public var parent: packageCommand + public var options: [Option] + public var package_identity: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case revision(String) + case branch(String) + case path(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .revision(revision): + ["--revision", String(describing: revision)] + case let .branch(branch): + ["--branch", String(describing: branch)] + case let .path(path): + ["--path", String(describing: path)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [editCommand.Option], package_identity: String) { + self.parent = parent + self.options = options + self.package_identity = package_identity + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("edit") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.package_identity.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Remove a package from editable mode + public func unedit(_ options: uneditCommand.Option..., package_identity: String) -> uneditCommand { + self.unedit(options, package_identity: package_identity) + } + + // Remove a package from editable mode + public func unedit(_ options: [uneditCommand.Option], package_identity: String) -> uneditCommand { + uneditCommand(parent: self, options, package_identity: package_identity) + } + + public struct uneditCommand { + public var parent: packageCommand + public var options: [Option] + public var package_identity: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case force + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .force: + ["--force"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [uneditCommand.Option], package_identity: String) { + self.parent = parent + self.options = options + self.package_identity = package_identity + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("unedit") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.package_identity.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Manipulate configuration of the package + public func config(_ options: configCommand.Option...) -> configCommand { + self.config(options) + } + + // Manipulate configuration of the package + public func config(_ options: [configCommand.Option]) -> configCommand { + configCommand(parent: self, options) + } + + public struct configCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case version + case help + + public func args() -> [String] { + switch self { + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [configCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("config") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + + // Set a mirror for a dependency + public func setmirror(_ options: setmirrorCommand.Option...) -> setmirrorCommand { + self.setmirror(options) + } + + // Set a mirror for a dependency + public func setmirror(_ options: [setmirrorCommand.Option]) -> setmirrorCommand { + setmirrorCommand(parent: self, options) + } + + public struct setmirrorCommand { + public var parent: configCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case package_url(String) + case original_url(String) + case mirror_url(String) + case original(String) + case mirror(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .package_url(package_url): + ["--package-url", String(describing: package_url)] + case let .original_url(original_url): + ["--original-url", String(describing: original_url)] + case let .mirror_url(mirror_url): + ["--mirror-url", String(describing: mirror_url)] + case let .original(original): + ["--original", String(describing: original)] + case let .mirror(mirror): + ["--mirror", String(describing: mirror)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: configCommand, _ options: [setmirrorCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("set-mirror") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Remove an existing mirror + public func unsetmirror(_ options: unsetmirrorCommand.Option...) -> unsetmirrorCommand { + self.unsetmirror(options) + } + + // Remove an existing mirror + public func unsetmirror(_ options: [unsetmirrorCommand.Option]) -> unsetmirrorCommand { + unsetmirrorCommand(parent: self, options) + } + + public struct unsetmirrorCommand { + public var parent: configCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case package_url(String) + case original_url(String) + case mirror_url(String) + case original(String) + case mirror(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .package_url(package_url): + ["--package-url", String(describing: package_url)] + case let .original_url(original_url): + ["--original-url", String(describing: original_url)] + case let .mirror_url(mirror_url): + ["--mirror-url", String(describing: mirror_url)] + case let .original(original): + ["--original", String(describing: original)] + case let .mirror(mirror): + ["--mirror", String(describing: mirror)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: configCommand, _ options: [unsetmirrorCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("unset-mirror") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Print mirror configuration for the given package dependency + public func getmirror(_ options: getmirrorCommand.Option...) -> getmirrorCommand { + self.getmirror(options) + } + + // Print mirror configuration for the given package dependency + public func getmirror(_ options: [getmirrorCommand.Option]) -> getmirrorCommand { + getmirrorCommand(parent: self, options) + } + + public struct getmirrorCommand { + public var parent: configCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case package_url(String) + case original_url(String) + case original(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .package_url(package_url): + ["--package-url", String(describing: package_url)] + case let .original_url(original_url): + ["--original-url", String(describing: original_url)] + case let .original(original): + ["--original", String(describing: original)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: configCommand, _ options: [getmirrorCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("get-mirror") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + } + + // Resolve package dependencies + public func resolve(_ options: resolveCommand.Option..., package_name: String? = nil) -> resolveCommand { + self.resolve(options, package_name: package_name) + } + + // Resolve package dependencies + public func resolve(_ options: [resolveCommand.Option], package_name: String? = nil) -> resolveCommand { + resolveCommand(parent: self, options, package_name: package_name) + } + + public struct resolveCommand { + public var parent: packageCommand + public var options: [Option] + public var package_name: String? + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version(String) + case branch(String) + case revision(String) + case version2 + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .version(version): + ["--version", String(describing: version)] + case let .branch(branch): + ["--branch", String(describing: branch)] + case let .revision(revision): + ["--revision", String(describing: revision)] + case .version2: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [resolveCommand.Option], package_name: String? = nil) { + self.parent = parent + self.options = options + self.package_name = package_name + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("resolve") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + if let package_name = self.package_name { genArgs += [package_name.description] } + + c.arguments = .init(genArgs) + + return c + } + } + + public func fetch(_ options: fetchCommand.Option..., package_name: String? = nil) -> fetchCommand { + self.fetch(options, package_name: package_name) + } + + public func fetch(_ options: [fetchCommand.Option], package_name: String? = nil) -> fetchCommand { + fetchCommand(parent: self, options, package_name: package_name) + } + + public struct fetchCommand { + public var parent: packageCommand + public var options: [Option] + public var package_name: String? + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version2(String) + case branch(String) + case revision(String) + case version3 + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .version2(version2): + ["--version", String(describing: version2)] + case let .branch(branch): + ["--branch", String(describing: branch)] + case let .revision(revision): + ["--revision", String(describing: revision)] + case .version3: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [fetchCommand.Option], package_name: String? = nil) { + self.parent = parent + self.options = options + self.package_name = package_name + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("fetch") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + if let package_name = self.package_name { genArgs += [package_name.description] } + + c.arguments = .init(genArgs) + + return c + } + } + + // Print the resolved dependency graph + public func showdependencies(_ options: showdependenciesCommand.Option...) -> showdependenciesCommand { + self.showdependencies(options) + } + + // Print the resolved dependency graph + public func showdependencies(_ options: [showdependenciesCommand.Option]) -> showdependenciesCommand { + showdependenciesCommand(parent: self, options) + } + + public struct showdependenciesCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case format(String) + case output_path(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .format(format): + ["--format", String(describing: format)] + case let .output_path(output_path): + ["--output-path", String(describing: output_path)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [showdependenciesCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("show-dependencies") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // List the available executables from this package. + public func showexecutables(_ options: showexecutablesCommand.Option...) -> showexecutablesCommand { + self.showexecutables(options) + } + + // List the available executables from this package. + public func showexecutables(_ options: [showexecutablesCommand.Option]) -> showexecutablesCommand { + showexecutablesCommand(parent: self, options) + } + + public struct showexecutablesCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case format(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .format(format): + ["--format", String(describing: format)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [showexecutablesCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("show-executables") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Manipulate tools version of the current package + public func toolsversion(_ options: toolsversionCommand.Option...) -> toolsversionCommand { + self.toolsversion(options) + } + + // Manipulate tools version of the current package + public func toolsversion(_ options: [toolsversionCommand.Option]) -> toolsversionCommand { + toolsversionCommand(parent: self, options) + } + + public struct toolsversionCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case set_current + case set(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .set_current: + ["--set-current"] + case let .set(set): + ["--set", String(describing: set)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [toolsversionCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("tools-version") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Compute the checksum for a binary artifact. + public func computechecksum(_ options: computechecksumCommand.Option..., path: String) -> computechecksumCommand { + self.computechecksum(options, path: path) + } + + // Compute the checksum for a binary artifact. + public func computechecksum(_ options: [computechecksumCommand.Option], path: String) -> computechecksumCommand { + computechecksumCommand(parent: self, options, path: path) + } + + public struct computechecksumCommand { + public var parent: packageCommand + public var options: [Option] + public var path: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [computechecksumCommand.Option], path: String) { + self.parent = parent + self.options = options + self.path = path + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("compute-checksum") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.path.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Create a source archive for the package + public func archivesource(_ options: archivesourceCommand.Option...) -> archivesourceCommand { + self.archivesource(options) + } + + // Create a source archive for the package + public func archivesource(_ options: [archivesourceCommand.Option]) -> archivesourceCommand { + archivesourceCommand(parent: self, options) + } + + public struct archivesourceCommand { + public var parent: packageCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case output(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case let .output(output): + ["--output", String(describing: output)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [archivesourceCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("archive-source") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Completion command (for shell completions) + public func completiontool(_ options: completiontoolCommand.Option..., mode: String) -> completiontoolCommand { + self.completiontool(options, mode: mode) + } + + // Completion command (for shell completions) + public func completiontool(_ options: [completiontoolCommand.Option], mode: String) -> completiontoolCommand { + completiontoolCommand(parent: self, options, mode: mode) + } + + public struct completiontoolCommand { + public var parent: packageCommand + public var options: [Option] + public var mode: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [completiontoolCommand.Option], mode: String) { + self.parent = parent + self.options = options + self.mode = mode + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("completion-tool") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.mode.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Invoke a command plugin or perform other actions on command plugins + public func plugin(_ options: pluginCommand.Option..., command: String? = nil, arguments: [String]?) -> pluginCommand { + self.plugin(options, command: command, arguments: arguments) + } + + // Invoke a command plugin or perform other actions on command plugins + public func plugin(_ options: [pluginCommand.Option], command: String? = nil, arguments: [String]?) -> pluginCommand { + pluginCommand(parent: self, options, command: command, arguments: arguments) + } + + public struct pluginCommand { + public var parent: packageCommand + public var options: [Option] + public var command: String? + public var arguments: [String]? + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case list + case allow_writing_to_package_directory + case allow_writing_to_directory(String) + case allow_network_connections(String) + case package(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .list: + ["--list"] + case .allow_writing_to_package_directory: + ["--allow-writing-to-package-directory"] + case let .allow_writing_to_directory(allow_writing_to_directory): + ["--allow-writing-to-directory", String(describing: allow_writing_to_directory)] + case let .allow_network_connections(allow_network_connections): + ["--allow-network-connections", String(describing: allow_network_connections)] + case let .package(package): + ["--package", String(describing: package)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [pluginCommand.Option], command: String? = nil, arguments: [String]?) { + self.parent = parent + self.options = options + self.command = command + self.arguments = arguments + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("plugin") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + if let command = self.command { genArgs += [command.description] } + if let arguments = self.arguments { genArgs += arguments.map(\.description) } + + c.arguments = .init(genArgs) + + return c + } + } + + public func defaultcommand(_ options: defaultcommandCommand.Option..., remaining: [String]?) -> defaultcommandCommand { + self.defaultcommand(options, remaining: remaining) + } + + public func defaultcommand(_ options: [defaultcommandCommand.Option], remaining: [String]?) -> defaultcommandCommand { + defaultcommandCommand(parent: self, options, remaining: remaining) + } + + public struct defaultcommandCommand { + public var parent: packageCommand + public var options: [Option] + public var remaining: [String]? + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case enable_dependency_cache + case disable_package_manifest_caching + case enable_build_manifest_caching + case manifest_cache(String) + case enable_experimental_prebuilts + case experimental_prebuilts_download_url(String) + case experimental_prebuilts_root_cert(String) + case verbose + case very_verbose + case quiet + case disable_sandbox + case netrc + case enable_netrc + case netrc_file(String) + case enable_keychain + case resolver_fingerprint_checking(String) + case resolver_signing_entity_checking(String) + case enable_signature_validation + case enable_prefetching + case force_resolved_versions + case skip_update + case disable_scm_to_registry_transformation + case use_registry_identity_for_scm + case replace_scm_with_registry + case default_registry_url(String) + case configuration(String) + case Xcc(String) + case Xswiftc(String) + case Xlinker(String) + case Xcxx(String) + case Xxcbuild(String) + case Xbuild_tools_swiftc(String) + case Xmanifest(String) + case triple(String) + case sdk(String) + case toolchain(String) + case arch(String) + case experimental_swift_sdk(String) + case swift_sdk(String) + case sanitize(String) + case auto_index_store + case experimental_prepare_for_indexing + case experimental_prepare_for_indexing_no_lazy + case enable_parseable_module_interfaces + case jobs(String) + case use_integrated_swift_driver + case explicit_target_dependency_import_check(String) + case experimental_explicit_module_build + case build_system(String) + case debug_info_format(String) + case enable_test_discovery + case experimental_test_entry_point_path(String) + case experimental_lto_mode(String) + case enable_get_task_allow_entitlement + case omit_frame_pointers + case enable_dead_strip + case disable_local_rpath + case allow_writing_to_package_directory + case allow_writing_to_directory(String) + case allow_network_connections(String) + case package(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .enable_dependency_cache: + ["--enable-dependency-cache"] + case .disable_package_manifest_caching: + ["--disable-package-manifest-caching"] + case .enable_build_manifest_caching: + ["--enable-build-manifest-caching"] + case let .manifest_cache(manifest_cache): + ["--manifest-cache", String(describing: manifest_cache)] + case .enable_experimental_prebuilts: + ["--enable-experimental-prebuilts"] + case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): + ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] + case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): + ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] + case .verbose: + ["--verbose"] + case .very_verbose: + ["--very-verbose"] + case .quiet: + ["--quiet"] + case .disable_sandbox: + ["--disable-sandbox"] + case .netrc: + ["--netrc"] + case .enable_netrc: + ["--enable-netrc"] + case let .netrc_file(netrc_file): + ["--netrc-file", String(describing: netrc_file)] + case .enable_keychain: + ["--enable-keychain"] + case let .resolver_fingerprint_checking(resolver_fingerprint_checking): + ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] + case let .resolver_signing_entity_checking(resolver_signing_entity_checking): + ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] + case .enable_signature_validation: + ["--enable-signature-validation"] + case .enable_prefetching: + ["--enable-prefetching"] + case .force_resolved_versions: + ["--force-resolved-versions"] + case .skip_update: + ["--skip-update"] + case .disable_scm_to_registry_transformation: + ["--disable-scm-to-registry-transformation"] + case .use_registry_identity_for_scm: + ["--use-registry-identity-for-scm"] + case .replace_scm_with_registry: + ["--replace-scm-with-registry"] + case let .default_registry_url(default_registry_url): + ["--default-registry-url", String(describing: default_registry_url)] + case let .configuration(configuration): + ["--configuration", String(describing: configuration)] + case let .Xcc(Xcc): + ["-Xcc", String(describing: Xcc)] + case let .Xswiftc(Xswiftc): + ["-Xswiftc", String(describing: Xswiftc)] + case let .Xlinker(Xlinker): + ["-Xlinker", String(describing: Xlinker)] + case let .Xcxx(Xcxx): + ["-Xcxx", String(describing: Xcxx)] + case let .Xxcbuild(Xxcbuild): + ["-Xxcbuild", String(describing: Xxcbuild)] + case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): + ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] + case let .Xmanifest(Xmanifest): + ["-Xmanifest", String(describing: Xmanifest)] + case let .triple(triple): + ["--triple", String(describing: triple)] + case let .sdk(sdk): + ["--sdk", String(describing: sdk)] + case let .toolchain(toolchain): + ["--toolchain", String(describing: toolchain)] + case let .arch(arch): + ["--arch", String(describing: arch)] + case let .experimental_swift_sdk(experimental_swift_sdk): + ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] + case let .swift_sdk(swift_sdk): + ["--swift-sdk", String(describing: swift_sdk)] + case let .sanitize(sanitize): + ["--sanitize", String(describing: sanitize)] + case .auto_index_store: + ["--auto-index-store"] + case .experimental_prepare_for_indexing: + ["--experimental-prepare-for-indexing"] + case .experimental_prepare_for_indexing_no_lazy: + ["--experimental-prepare-for-indexing-no-lazy"] + case .enable_parseable_module_interfaces: + ["--enable-parseable-module-interfaces"] + case let .jobs(jobs): + ["--jobs", String(describing: jobs)] + case .use_integrated_swift_driver: + ["--use-integrated-swift-driver"] + case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): + ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] + case .experimental_explicit_module_build: + ["--experimental-explicit-module-build"] + case let .build_system(build_system): + ["--build-system", String(describing: build_system)] + case let .debug_info_format(debug_info_format): + ["-debug-info-format", String(describing: debug_info_format)] + case .enable_test_discovery: + ["--enable-test-discovery"] + case let .experimental_test_entry_point_path(experimental_test_entry_point_path): + ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] + case let .experimental_lto_mode(experimental_lto_mode): + ["--experimental-lto-mode", String(describing: experimental_lto_mode)] + case .enable_get_task_allow_entitlement: + ["--enable-get-task-allow-entitlement"] + case .omit_frame_pointers: + ["--omit-frame-pointers"] + case .enable_dead_strip: + ["--enable-dead-strip"] + case .disable_local_rpath: + ["--disable-local-rpath"] + case .allow_writing_to_package_directory: + ["--allow-writing-to-package-directory"] + case let .allow_writing_to_directory(allow_writing_to_directory): + ["--allow-writing-to-directory", String(describing: allow_writing_to_directory)] + case let .allow_network_connections(allow_network_connections): + ["--allow-network-connections", String(describing: allow_network_connections)] + case let .package(package): + ["--package", String(describing: package)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: packageCommand, _ options: [defaultcommandCommand.Option], remaining: [String]?) { + self.parent = parent + self.options = options + self.remaining = remaining + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("default-command") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + if let remaining = self.remaining { genArgs += remaining.map(\.description) } + + c.arguments = .init(genArgs) + + return c + } + } + } + + // Perform operations on Swift SDKs. + public func sdk(_ options: sdkCommand.Option...) -> sdkCommand { + self.sdk(options) + } + + // Perform operations on Swift SDKs. + public func sdk(_ options: [sdkCommand.Option]) -> sdkCommand { + sdkCommand(parent: self, options) + } + + public struct sdkCommand { + public var parent: swiftCommand + public var options: [Option] + + public enum Option { + case version + case help + + public func args() -> [String] { + switch self { + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: swiftCommand, _ options: [sdkCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("sdk") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + + // Manages configuration options for installed Swift SDKs. + public func configure(_ options: configureCommand.Option..., sdk_id: String, target_triple: String) -> configureCommand { + self.configure(options, sdk_id: sdk_id, target_triple: target_triple) + } + + // Manages configuration options for installed Swift SDKs. + public func configure(_ options: [configureCommand.Option], sdk_id: String, target_triple: String) -> configureCommand { + configureCommand(parent: self, options, sdk_id: sdk_id, target_triple: target_triple) + } + + public struct configureCommand { + public var parent: sdkCommand + public var options: [Option] + public var sdk_id: String + public var target_triple: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case sdk_root_path(String) + case swift_resources_path(String) + case swift_static_resources_path(String) + case include_search_path(String) + case library_search_path(String) + case toolset_path(String) + case reset + case show_configuration + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case let .sdk_root_path(sdk_root_path): + ["--sdk-root-path", String(describing: sdk_root_path)] + case let .swift_resources_path(swift_resources_path): + ["--swift-resources-path", String(describing: swift_resources_path)] + case let .swift_static_resources_path(swift_static_resources_path): + ["--swift-static-resources-path", String(describing: swift_static_resources_path)] + case let .include_search_path(include_search_path): + ["--include-search-path", String(describing: include_search_path)] + case let .library_search_path(library_search_path): + ["--library-search-path", String(describing: library_search_path)] + case let .toolset_path(toolset_path): + ["--toolset-path", String(describing: toolset_path)] + case .reset: + ["--reset"] + case .show_configuration: + ["--show-configuration"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: sdkCommand, _ options: [configureCommand.Option], sdk_id: String, target_triple: String) { + self.parent = parent + self.options = options + self.sdk_id = sdk_id + self.target_triple = target_triple + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("configure") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.sdk_id.description] + genArgs += [self.target_triple.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Deprecated: use `swift sdk configure` instead.Manages configuration options for installed Swift SDKs. + public func configuration(_ options: configurationCommand.Option...) -> configurationCommand { + self.configuration(options) + } + + // Deprecated: use `swift sdk configure` instead.Manages configuration options for installed Swift SDKs. + public func configuration(_ options: [configurationCommand.Option]) -> configurationCommand { + configurationCommand(parent: self, options) + } + + public struct configurationCommand { + public var parent: sdkCommand + public var options: [Option] + + public enum Option { + case version + case help + + public func args() -> [String] { + switch self { + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: sdkCommand, _ options: [configurationCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("configuration") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + + // Resets configuration properties currently applied to a given Swift SDK and target triple. If no specific property is specified, all of them are reset for the Swift SDK. + public func reset(_ options: resetCommand.Option..., sdk_id: String, target_triple: String) -> resetCommand { + self.reset(options, sdk_id: sdk_id, target_triple: target_triple) + } + + // Resets configuration properties currently applied to a given Swift SDK and target triple. If no specific property is specified, all of them are reset for the Swift SDK. + public func reset(_ options: [resetCommand.Option], sdk_id: String, target_triple: String) -> resetCommand { + resetCommand(parent: self, options, sdk_id: sdk_id, target_triple: target_triple) + } + + public struct resetCommand { + public var parent: configurationCommand + public var options: [Option] + public var sdk_id: String + public var target_triple: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case sdk_root_path + case swift_resources_path + case swift_static_resources_path + case include_search_path + case library_search_path + case toolset_path + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .sdk_root_path: + ["--sdk-root-path"] + case .swift_resources_path: + ["--swift-resources-path"] + case .swift_static_resources_path: + ["--swift-static-resources-path"] + case .include_search_path: + ["--include-search-path"] + case .library_search_path: + ["--library-search-path"] + case .toolset_path: + ["--toolset-path"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: configurationCommand, _ options: [resetCommand.Option], sdk_id: String, target_triple: String) { + self.parent = parent + self.options = options + self.sdk_id = sdk_id + self.target_triple = target_triple + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("reset") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.sdk_id.description] + genArgs += [self.target_triple.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Sets configuration options for installed Swift SDKs. + public func set(_ options: setCommand.Option..., sdk_id: String, target_triple: String) -> setCommand { + self.set(options, sdk_id: sdk_id, target_triple: target_triple) + } + + // Sets configuration options for installed Swift SDKs. + public func set(_ options: [setCommand.Option], sdk_id: String, target_triple: String) -> setCommand { + setCommand(parent: self, options, sdk_id: sdk_id, target_triple: target_triple) + } + + public struct setCommand { + public var parent: configurationCommand + public var options: [Option] + public var sdk_id: String + public var target_triple: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case sdk_root_path(String) + case swift_resources_path(String) + case swift_static_resources_path(String) + case include_search_path(String) + case library_search_path(String) + case toolset_path(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case let .sdk_root_path(sdk_root_path): + ["--sdk-root-path", String(describing: sdk_root_path)] + case let .swift_resources_path(swift_resources_path): + ["--swift-resources-path", String(describing: swift_resources_path)] + case let .swift_static_resources_path(swift_static_resources_path): + ["--swift-static-resources-path", String(describing: swift_static_resources_path)] + case let .include_search_path(include_search_path): + ["--include-search-path", String(describing: include_search_path)] + case let .library_search_path(library_search_path): + ["--library-search-path", String(describing: library_search_path)] + case let .toolset_path(toolset_path): + ["--toolset-path", String(describing: toolset_path)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: configurationCommand, _ options: [setCommand.Option], sdk_id: String, target_triple: String) { + self.parent = parent + self.options = options + self.sdk_id = sdk_id + self.target_triple = target_triple + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("set") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.sdk_id.description] + genArgs += [self.target_triple.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Prints all configuration properties currently applied to a given Swift SDK and target triple. + public func show(_ options: showCommand.Option..., sdk_id: String, target_triple: String) -> showCommand { + self.show(options, sdk_id: sdk_id, target_triple: target_triple) + } + + // Prints all configuration properties currently applied to a given Swift SDK and target triple. + public func show(_ options: [showCommand.Option], sdk_id: String, target_triple: String) -> showCommand { + showCommand(parent: self, options, sdk_id: sdk_id, target_triple: target_triple) + } + + public struct showCommand { + public var parent: configurationCommand + public var options: [Option] + public var sdk_id: String + public var target_triple: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: configurationCommand, _ options: [showCommand.Option], sdk_id: String, target_triple: String) { + self.parent = parent + self.options = options + self.sdk_id = sdk_id + self.target_triple = target_triple + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("show") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.sdk_id.description] + genArgs += [self.target_triple.description] + + c.arguments = .init(genArgs) + + return c + } + } + } + + // Installs a given Swift SDK bundle to a location discoverable by SwiftPM. If the artifact bundle is at a remote location, it's downloaded to local filesystem first. + public func install(_ options: installCommand.Option..., bundle_path_or_url: String) -> installCommand { + self.install(options, bundle_path_or_url: bundle_path_or_url) + } + + // Installs a given Swift SDK bundle to a location discoverable by SwiftPM. If the artifact bundle is at a remote location, it's downloaded to local filesystem first. + public func install(_ options: [installCommand.Option], bundle_path_or_url: String) -> installCommand { + installCommand(parent: self, options, bundle_path_or_url: bundle_path_or_url) + } + + public struct installCommand { + public var parent: sdkCommand + public var options: [Option] + public var bundle_path_or_url: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case checksum(String) + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case let .checksum(checksum): + ["--checksum", String(describing: checksum)] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: sdkCommand, _ options: [installCommand.Option], bundle_path_or_url: String) { + self.parent = parent + self.options = options + self.bundle_path_or_url = bundle_path_or_url + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("install") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.bundle_path_or_url.description] + + c.arguments = .init(genArgs) + + return c + } + } + + // Print a list of IDs of available Swift SDKs available on the filesystem. + public func list(_ options: listCommand.Option...) -> listCommand { + self.list(options) + } + + // Print a list of IDs of available Swift SDKs available on the filesystem. + public func list(_ options: [listCommand.Option]) -> listCommand { + listCommand(parent: self, options) + } + + public struct listCommand { + public var parent: sdkCommand + public var options: [Option] + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: sdkCommand, _ options: [listCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("list") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + + // Removes a previously installed Swift SDK bundle from the filesystem. + public func remove(_ options: removeCommand.Option..., sdk_id_or_bundle_name: String) -> removeCommand { + self.remove(options, sdk_id_or_bundle_name: sdk_id_or_bundle_name) + } + + // Removes a previously installed Swift SDK bundle from the filesystem. + public func remove(_ options: [removeCommand.Option], sdk_id_or_bundle_name: String) -> removeCommand { + removeCommand(parent: self, options, sdk_id_or_bundle_name: sdk_id_or_bundle_name) + } + + public struct removeCommand { + public var parent: sdkCommand + public var options: [Option] + public var sdk_id_or_bundle_name: String + + public enum Option { + case package_path(String) + case cache_path(String) + case config_path(String) + case security_path(String) + case scratch_path(String) + case build_path(String) + case multiroot_data_file(String) + case destination(String) + case experimental_swift_sdks_path(String) + case swift_sdks_path(String) + case toolset(String) + case pkg_config_path(String) + case ignore_lock + case version + case help + + public func args() -> [String] { + switch self { + case let .package_path(package_path): + ["--package-path", String(describing: package_path)] + case let .cache_path(cache_path): + ["--cache-path", String(describing: cache_path)] + case let .config_path(config_path): + ["--config-path", String(describing: config_path)] + case let .security_path(security_path): + ["--security-path", String(describing: security_path)] + case let .scratch_path(scratch_path): + ["--scratch-path", String(describing: scratch_path)] + case let .build_path(build_path): + ["--build-path", String(describing: build_path)] + case let .multiroot_data_file(multiroot_data_file): + ["--multiroot-data-file", String(describing: multiroot_data_file)] + case let .destination(destination): + ["--destination", String(describing: destination)] + case let .experimental_swift_sdks_path(experimental_swift_sdks_path): + ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] + case let .swift_sdks_path(swift_sdks_path): + ["--swift-sdks-path", String(describing: swift_sdks_path)] + case let .toolset(toolset): + ["--toolset", String(describing: toolset)] + case let .pkg_config_path(pkg_config_path): + ["--pkg-config-path", String(describing: pkg_config_path)] + case .ignore_lock: + ["--ignore-lock"] + case .version: + ["--version"] + case .help: + ["--help"] + } + } + } + + public init(parent: sdkCommand, _ options: [removeCommand.Option], sdk_id_or_bundle_name: String) { + self.parent = parent + self.options = options + self.sdk_id_or_bundle_name = sdk_id_or_bundle_name + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("remove") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + genArgs += [self.sdk_id_or_bundle_name.description] + + c.arguments = .init(genArgs) + + return c + } + } + } + } +} + +extension SystemCommand { + // manipulate tape archives. See tar(1) for more information. + public static func tar(executable: Executable = tarCommand.defaultExecutable, _ options: tarCommand.Option...) -> tarCommand { + Self.tar(executable: executable, options) + } + + // manipulate tape archives. See tar(1) for more information. + public static func tar(executable: Executable = tarCommand.defaultExecutable, _ options: [tarCommand.Option]) -> tarCommand { + tarCommand(executable: executable, options) + } + + public struct tarCommand { + public static var defaultExecutable: Executable { .name("tar") } + public var executable: Executable + public var options: [Option] + + public enum Option { + case directory(FilePath) + + public func args() -> [String] { + switch self { + case let .directory(directory): + ["-C", String(describing: directory)] + } + } + } + + public init(executable: Executable, _ options: [tarCommand.Option]) { + self.executable = executable + self.options = options + } + + public func config() -> Configuration { + var genArgs: [String] = [] + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + return Configuration( + executable: self.executable, + arguments: Arguments(genArgs), + environment: .inherit + ) + } + + public func create(_ options: createCommand.Option..., files: [FilePath]?) -> createCommand { + self.create(options, files: files) + } + + public func create(_ options: [createCommand.Option], files: [FilePath]?) -> createCommand { + createCommand(parent: self, options, files: files) + } + + public struct createCommand { + public var parent: tarCommand + public var options: [Option] + public var files: [FilePath]? + + public enum Option { + case archive(FilePath) + case compressed + case verbose + + public func args() -> [String] { + switch self { + case let .archive(archive): + ["--file", String(describing: archive)] + case .compressed: + ["-z"] + case .verbose: + ["-v"] + } + } + } + + public init(parent: tarCommand, _ options: [createCommand.Option], files: [FilePath]?) { + self.parent = parent + self.options = options + self.files = files + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("--create") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + if let files = self.files { genArgs += files.map(\.description) } + + c.arguments = .init(genArgs) + + return c + } + } + + public func extract(_ options: extractCommand.Option...) -> extractCommand { + self.extract(options) + } + + public func extract(_ options: [extractCommand.Option]) -> extractCommand { + extractCommand(parent: self, options) + } + + public struct extractCommand { + public var parent: tarCommand + public var options: [Option] + + public enum Option { + case archive(FilePath) + case compressed + case verbose + + public func args() -> [String] { + switch self { + case let .archive(archive): + ["--file", String(describing: archive)] + case .compressed: + ["-z"] + case .verbose: + ["-v"] + } + } + } + + public init(parent: tarCommand, _ options: [extractCommand.Option]) { + self.parent = parent + self.options = options + } + + public func config() -> Configuration { + var c = self.parent.config() + + var genArgs = c.arguments.storage.map(\.description) + + genArgs.append("--extract") + + for opt in self.options { + genArgs.append(contentsOf: opt.args()) + } + + c.arguments = .init(genArgs) + + return c + } + } + } +} diff --git a/Sources/SwiftlyCore/CommandsNew.swift b/Sources/SwiftlyCore/CommandsNew.swift deleted file mode 100644 index 82808148..00000000 --- a/Sources/SwiftlyCore/CommandsNew.swift +++ /dev/null @@ -1,11200 +0,0 @@ -// -// DO NOT EDIT THIS FILE: It is generated using the JSON files in this directory (based on swift-argument-parser --experimental-dump-help format). -// REGENERATE: swift run generate-command-models && swift run swiftformat Sources/SwiftlyCore/Commands*.swift -// -import SystemPackage - -extension SystemCommand { - // Directory Service command line utility for macOS. See dscl(1) for more information. - public static func dscl(executable: Executable = dsclCommand.defaultExecutable, datasource: String? = nil) -> dsclCommand { - dsclCommand(executable: executable, datasource: datasource) - } - - public struct dsclCommand { - public static var defaultExecutable: Executable { .name("dscl") } - public var executable: Executable - public var datasource: String? - - public init(executable: Executable, datasource: String? = nil) { - self.executable = executable - self.datasource = datasource - } - - public func config() -> Configuration { - var genArgs: [String] = [] - - if let datasource = self.datasource { genArgs += [datasource.description] } - - return Configuration( - executable: self.executable, - arguments: Arguments(genArgs), - environment: .inherit - ) - } - - public func read(path: FilePath? = nil, key: [String]?) -> readCommand { - readCommand(parent: self, path: path, key: key) - } - - public struct readCommand { - public var parent: dsclCommand - public var path: FilePath? - public var key: [String]? - - public init(parent: dsclCommand, path: FilePath? = nil, key: [String]?) { - self.parent = parent - self.path = path - self.key = key - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("-read") - - if let path = self.path { genArgs += [path.description] } - if let key = self.key { genArgs += key.map(\.description) } - - c.arguments = .init(genArgs) - - return c - } - } - } -} - -extension SystemCommand { - // get entries from Name Service Switch libraries. See getent(1) for more information. - public static func getent(executable: Executable = getentCommand.defaultExecutable, database: String, key: String...) -> getentCommand { - Self.getent(executable: executable, database: database, key: key) - } - - // get entries from Name Service Switch libraries. See getent(1) for more information. - public static func getent(executable: Executable = getentCommand.defaultExecutable, database: String, key: [String]) -> getentCommand { - getentCommand(executable: executable, database: database, key: key) - } - - public struct getentCommand { - public static var defaultExecutable: Executable { .name("getent") } - public var executable: Executable - public var database: String - public var key: [String] - - public init(executable: Executable, database: String, key: [String]) { - self.executable = executable - self.database = database - self.key = key - } - - public func config() -> Configuration { - var genArgs: [String] = [] - - genArgs += [self.database.description] - genArgs += self.key.map(\.description) - - return Configuration( - executable: self.executable, - arguments: Arguments(genArgs), - environment: .inherit - ) - } - } -} - -extension SystemCommand { - // the stupid content tracker. See git(1) for more information. - public static func git(executable: Executable = gitCommand.defaultExecutable, _ options: gitCommand.Option...) -> gitCommand { - Self.git(executable: executable, options) - } - - // the stupid content tracker. See git(1) for more information. - public static func git(executable: Executable = gitCommand.defaultExecutable, _ options: [gitCommand.Option]) -> gitCommand { - gitCommand(executable: executable, options) - } - - public struct gitCommand { - public static var defaultExecutable: Executable { .name("git") } - public var executable: Executable - public var options: [Option] - - public enum Option { - case workingDir(FilePath) - - public func args() -> [String] { - switch self { - case let .workingDir(workingDir): - ["-C", String(describing: workingDir)] - } - } - } - - public init(executable: Executable, _ options: [gitCommand.Option]) { - self.executable = executable - self.options = options - } - - public func config() -> Configuration { - var genArgs: [String] = [] - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - return Configuration( - executable: self.executable, - arguments: Arguments(genArgs), - environment: .inherit - ) - } - - public func _init() -> initCommand { - initCommand(parent: self) - } - - public struct initCommand { - public var parent: gitCommand - - public init(parent: gitCommand) { - self.parent = parent - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("init") - - c.arguments = .init(genArgs) - - return c - } - } - - public func commit(_ options: commitCommand.Option...) -> commitCommand { - self.commit(options) - } - - public func commit(_ options: [commitCommand.Option]) -> commitCommand { - commitCommand(parent: self, options) - } - - public struct commitCommand { - public var parent: gitCommand - public var options: [Option] - - public enum Option { - case allow_empty - case allow_empty_message - case message(String) - - public func args() -> [String] { - switch self { - case .allow_empty: - ["--allow-empty"] - case .allow_empty_message: - ["--allow-empty-message"] - case let .message(message): - ["--message", String(describing: message)] - } - } - } - - public init(parent: gitCommand, _ options: [commitCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("commit") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - public func log(_ options: logCommand.Option...) -> logCommand { - self.log(options) - } - - public func log(_ options: [logCommand.Option]) -> logCommand { - logCommand(parent: self, options) - } - - public struct logCommand { - public var parent: gitCommand - public var options: [Option] - - public enum Option { - case max_count(String) - case pretty(String) - - public func args() -> [String] { - switch self { - case let .max_count(max_count): - ["--max-count", String(describing: max_count)] - case let .pretty(pretty): - ["--pretty", String(describing: pretty)] - } - } - } - - public init(parent: gitCommand, _ options: [logCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("log") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - public func diffindex(_ options: diffindexCommand.Option..., tree_ish: String) -> diffindexCommand { - self.diffindex(options, tree_ish: tree_ish) - } - - public func diffindex(_ options: [diffindexCommand.Option], tree_ish: String) -> diffindexCommand { - diffindexCommand(parent: self, options, tree_ish: tree_ish) - } - - public struct diffindexCommand { - public var parent: gitCommand - public var options: [Option] - public var tree_ish: String - - public enum Option { - case quiet - - public func args() -> [String] { - switch self { - case .quiet: - ["--quiet"] - } - } - } - - public init(parent: gitCommand, _ options: [diffindexCommand.Option], tree_ish: String) { - self.parent = parent - self.options = options - self.tree_ish = tree_ish - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("diff-index") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.tree_ish.description] - - c.arguments = .init(genArgs) - - return c - } - } - } -} - -extension SystemCommand { - // OpenPGP encryption and signing tool. See gpg(1) for more information. - public static func gpg(executable: Executable = gpgCommand.defaultExecutable) -> gpgCommand { - gpgCommand(executable: executable) - } - - public struct gpgCommand { - public static var defaultExecutable: Executable { .name("gpg") } - public var executable: Executable - - public init(executable: Executable) { - self.executable = executable - } - - public func config() -> Configuration { - var genArgs: [String] = [] - - return Configuration( - executable: self.executable, - arguments: Arguments(genArgs), - environment: .inherit - ) - } - - public func _import(key: FilePath...) -> importCommand { - self._import(key: key) - } - - public func _import(key: [FilePath]) -> importCommand { - importCommand(parent: self, key: key) - } - - public struct importCommand { - public var parent: gpgCommand - public var key: [FilePath] - - public init(parent: gpgCommand, key: [FilePath]) { - self.parent = parent - self.key = key - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("--import") - - genArgs += self.key.map(\.description) - - c.arguments = .init(genArgs) - - return c - } - } - - public func verify(detached_signature: FilePath? = nil, signed_data: FilePath? = nil) -> verifyCommand { - verifyCommand(parent: self, detached_signature: detached_signature, signed_data: signed_data) - } - - public struct verifyCommand { - public var parent: gpgCommand - public var detached_signature: FilePath? - public var signed_data: FilePath? - - public init(parent: gpgCommand, detached_signature: FilePath? = nil, signed_data: FilePath? = nil) { - self.parent = parent - self.detached_signature = detached_signature - self.signed_data = signed_data - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("--verify") - - if let detached_signature = self.detached_signature { genArgs += [detached_signature.description] } - if let signed_data = self.signed_data { genArgs += [signed_data.description] } - - c.arguments = .init(genArgs) - - return c - } - } - } -} - -extension SystemCommand { - // system software and package installer tool. See installer(1) for more information. - public static func installer(executable: Executable = installerCommand.defaultExecutable, _ options: installerCommand.Option...) -> installerCommand { - Self.installer(executable: executable, options) - } - - // system software and package installer tool. See installer(1) for more information. - public static func installer(executable: Executable = installerCommand.defaultExecutable, _ options: [installerCommand.Option]) -> installerCommand { - installerCommand(executable: executable, options) - } - - public struct installerCommand { - public static var defaultExecutable: Executable { .name("installer") } - public var executable: Executable - public var options: [Option] - - public enum Option { - case verbose - case pkg(FilePath) - case target(String) - - public func args() -> [String] { - switch self { - case .verbose: - ["-verbose"] - case let .pkg(pkg): - ["-pkg", String(describing: pkg)] - case let .target(target): - ["-target", String(describing: target)] - } - } - } - - public init(executable: Executable, _ options: [installerCommand.Option]) { - self.executable = executable - self.options = options - } - - public func config() -> Configuration { - var genArgs: [String] = [] - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - return Configuration( - executable: self.executable, - arguments: Arguments(genArgs), - environment: .inherit - ) - } - } -} - -extension SystemCommand { - // Create or operate on universal files. See lipo(1) for more information. - public static func lipo(executable: Executable = lipoCommand.defaultExecutable, input_file: FilePath...) -> lipoCommand { - Self.lipo(executable: executable, input_file: input_file) - } - - // Create or operate on universal files. See lipo(1) for more information. - public static func lipo(executable: Executable = lipoCommand.defaultExecutable, input_file: [FilePath]) -> lipoCommand { - lipoCommand(executable: executable, input_file: input_file) - } - - public struct lipoCommand { - public static var defaultExecutable: Executable { .name("lipo") } - public var executable: Executable - public var input_file: [FilePath] - - public init(executable: Executable, input_file: [FilePath]) { - self.executable = executable - self.input_file = input_file - } - - public func config() -> Configuration { - var genArgs: [String] = [] - - genArgs += self.input_file.map(\.description) - - return Configuration( - executable: self.executable, - arguments: Arguments(genArgs), - environment: .inherit - ) - } - - public func create(_ options: createCommand.Option...) -> createCommand { - self.create(options) - } - - public func create(_ options: [createCommand.Option]) -> createCommand { - createCommand(parent: self, options) - } - - public struct createCommand { - public var parent: lipoCommand - public var options: [Option] - - public enum Option { - case output(FilePath) - - public func args() -> [String] { - switch self { - case let .output(output): - ["-output", String(describing: output)] - } - } - } - - public init(parent: lipoCommand, _ options: [createCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("-create") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - } -} - -extension SystemCommand { - // make utility to maintain groups of programs. See make(1) for more information. - public static func make(executable: Executable = makeCommand.defaultExecutable) -> makeCommand { - makeCommand(executable: executable) - } - - public struct makeCommand { - public static var defaultExecutable: Executable { .name("make") } - public var executable: Executable - - public init(executable: Executable) { - self.executable = executable - } - - public func config() -> Configuration { - var genArgs: [String] = [] - - return Configuration( - executable: self.executable, - arguments: Arguments(genArgs), - environment: .inherit - ) - } - - public func install() -> installCommand { - installCommand(parent: self) - } - - public struct installCommand { - public var parent: makeCommand - - public init(parent: makeCommand) { - self.parent = parent - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("install") - - c.arguments = .init(genArgs) - - return c - } - } - } -} - -extension SystemCommand { - // Build a macOS Installer component package from on-disk files. See pkgbuild(1) for more information. - public static func pkgbuild(executable: Executable = pkgbuildCommand.defaultExecutable, _ options: pkgbuildCommand.Option..., package_output_path: FilePath) -> pkgbuildCommand { - Self.pkgbuild(executable: executable, options, package_output_path: package_output_path) - } - - // Build a macOS Installer component package from on-disk files. See pkgbuild(1) for more information. - public static func pkgbuild(executable: Executable = pkgbuildCommand.defaultExecutable, _ options: [pkgbuildCommand.Option], package_output_path: FilePath) -> pkgbuildCommand { - pkgbuildCommand(executable: executable, options, package_output_path: package_output_path) - } - - public struct pkgbuildCommand { - public static var defaultExecutable: Executable { .name("pkgbuild") } - public var executable: Executable - public var options: [Option] - public var package_output_path: FilePath - - public enum Option { - case sign(String) - case identifier(String) - case version(String) - case install_location(FilePath) - case root(FilePath) - - public func args() -> [String] { - switch self { - case let .sign(sign): - ["--sign", String(describing: sign)] - case let .identifier(identifier): - ["--identifier", String(describing: identifier)] - case let .version(version): - ["--version", String(describing: version)] - case let .install_location(install_location): - ["--install-location", String(describing: install_location)] - case let .root(root): - ["--root", String(describing: root)] - } - } - } - - public init(executable: Executable, _ options: [pkgbuildCommand.Option], package_output_path: FilePath) { - self.executable = executable - self.options = options - self.package_output_path = package_output_path - } - - public func config() -> Configuration { - var genArgs: [String] = [] - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.package_output_path.description] - - return Configuration( - executable: self.executable, - arguments: Arguments(genArgs), - environment: .inherit - ) - } - } -} - -extension SystemCommand { - // Query and manipulate macOS Installer packages and receipts. See pkgutil(1) for more information. - public static func pkgutil(executable: Executable = pkgutilCommand.defaultExecutable, _ options: pkgutilCommand.Option...) -> pkgutilCommand { - Self.pkgutil(executable: executable, options) - } - - // Query and manipulate macOS Installer packages and receipts. See pkgutil(1) for more information. - public static func pkgutil(executable: Executable = pkgutilCommand.defaultExecutable, _ options: [pkgutilCommand.Option]) -> pkgutilCommand { - pkgutilCommand(executable: executable, options) - } - - public struct pkgutilCommand { - public static var defaultExecutable: Executable { .name("pkgutil") } - public var executable: Executable - public var options: [Option] - - public enum Option { - case verbose - case volume(FilePath) - - public func args() -> [String] { - switch self { - case .verbose: - ["--verbose"] - case let .volume(volume): - ["--volume", String(describing: volume)] - } - } - } - - public init(executable: Executable, _ options: [pkgutilCommand.Option]) { - self.executable = executable - self.options = options - } - - public func config() -> Configuration { - var genArgs: [String] = [] - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - return Configuration( - executable: self.executable, - arguments: Arguments(genArgs), - environment: .inherit - ) - } - - public func checksignature(pkg_path: FilePath) -> checksignatureCommand { - checksignatureCommand(parent: self, pkg_path: pkg_path) - } - - public struct checksignatureCommand { - public var parent: pkgutilCommand - public var pkg_path: FilePath - - public init(parent: pkgutilCommand, pkg_path: FilePath) { - self.parent = parent - self.pkg_path = pkg_path - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("--check-signature") - - genArgs += [self.pkg_path.description] - - c.arguments = .init(genArgs) - - return c - } - } - - public func expand(pkg_path: FilePath, dir_path: FilePath) -> expandCommand { - expandCommand(parent: self, pkg_path: pkg_path, dir_path: dir_path) - } - - public struct expandCommand { - public var parent: pkgutilCommand - public var pkg_path: FilePath - public var dir_path: FilePath - - public init(parent: pkgutilCommand, pkg_path: FilePath, dir_path: FilePath) { - self.parent = parent - self.pkg_path = pkg_path - self.dir_path = dir_path - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("--expand") - - genArgs += [self.pkg_path.description] - genArgs += [self.dir_path.description] - - c.arguments = .init(genArgs) - - return c - } - } - - public func forget(pkg_id: String) -> forgetCommand { - forgetCommand(parent: self, pkg_id: pkg_id) - } - - public struct forgetCommand { - public var parent: pkgutilCommand - public var pkg_id: String - - public init(parent: pkgutilCommand, pkg_id: String) { - self.parent = parent - self.pkg_id = pkg_id - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("--forget") - - genArgs += [self.pkg_id.description] - - c.arguments = .init(genArgs) - - return c - } - } - } -} - -extension SystemCommand { - // Build a product archive for the macOS Installer or the Mac App Store. See productbuild(1) for more information. - public static func productbuild(executable: Executable = productbuildCommand.defaultExecutable, _ options: productbuildCommand.Option..., output_path: FilePath) -> productbuildCommand { - Self.productbuild(executable: executable, options, output_path: output_path) - } - - // Build a product archive for the macOS Installer or the Mac App Store. See productbuild(1) for more information. - public static func productbuild(executable: Executable = productbuildCommand.defaultExecutable, _ options: [productbuildCommand.Option], output_path: FilePath) -> productbuildCommand { - productbuildCommand(executable: executable, options, output_path: output_path) - } - - public struct productbuildCommand { - public static var defaultExecutable: Executable { .name("productbuild") } - public var executable: Executable - public var options: [Option] - public var output_path: FilePath - - public enum Option { - case synthesize - case dist_path(FilePath) - case pkg_path(FilePath) - case search_path(FilePath) - case cert(String) - - public func args() -> [String] { - switch self { - case .synthesize: - ["--synthesize"] - case let .dist_path(dist_path): - ["--distribution", String(describing: dist_path)] - case let .pkg_path(pkg_path): - ["--package", String(describing: pkg_path)] - case let .search_path(search_path): - ["--package-path", String(describing: search_path)] - case let .cert(cert): - ["--sign", String(describing: cert)] - } - } - } - - public init(executable: Executable, _ options: [productbuildCommand.Option], output_path: FilePath) { - self.executable = executable - self.options = options - self.output_path = output_path - } - - public func config() -> Configuration { - var genArgs: [String] = [] - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.output_path.description] - - return Configuration( - executable: self.executable, - arguments: Arguments(genArgs), - environment: .inherit - ) - } - } -} - -extension SystemCommand { - // calculate a message-digest fingerprint (checksum) for a file. See sha256sum(1) for more information. - public static func sha256sum(executable: Executable = sha256sumCommand.defaultExecutable, _ options: sha256sumCommand.Option..., files: FilePath...) -> sha256sumCommand { - Self.sha256sum(executable: executable, options, files: files) - } - - // calculate a message-digest fingerprint (checksum) for a file. See sha256sum(1) for more information. - public static func sha256sum(executable: Executable = sha256sumCommand.defaultExecutable, _ options: [sha256sumCommand.Option], files: [FilePath]) -> sha256sumCommand { - sha256sumCommand(executable: executable, options, files: files) - } - - public struct sha256sumCommand { - public static var defaultExecutable: Executable { .name("sha256sum") } - public var executable: Executable - public var options: [Option] - public var files: [FilePath] - - public enum Option { - case verbose - - public func args() -> [String] { - switch self { - case .verbose: - ["--verbose"] - } - } - } - - public init(executable: Executable, _ options: [sha256sumCommand.Option], files: [FilePath]) { - self.executable = executable - self.options = options - self.files = files - } - - public func config() -> Configuration { - var genArgs: [String] = [] - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += self.files.map(\.description) - - return Configuration( - executable: self.executable, - arguments: Arguments(genArgs), - environment: .inherit - ) - } - } -} - -extension SystemCommand { - // remove symbols. See strip(1) for more information. - public static func strip(executable: Executable = stripCommand.defaultExecutable, name: FilePath...) -> stripCommand { - Self.strip(executable: executable, name: name) - } - - // remove symbols. See strip(1) for more information. - public static func strip(executable: Executable = stripCommand.defaultExecutable, name: [FilePath]) -> stripCommand { - stripCommand(executable: executable, name: name) - } - - public struct stripCommand { - public static var defaultExecutable: Executable { .name("strip") } - public var executable: Executable - public var name: [FilePath] - - public init(executable: Executable, name: [FilePath]) { - self.executable = executable - self.name = name - } - - public func config() -> Configuration { - var genArgs: [String] = [] - - genArgs += self.name.map(\.description) - - return Configuration( - executable: self.executable, - arguments: Arguments(genArgs), - environment: .inherit - ) - } - } -} - -extension SystemCommand { - // Swift compiler - public static func swift(executable: Executable = swiftCommand.defaultExecutable) -> swiftCommand { - swiftCommand(executable: executable) - } - - public struct swiftCommand { - public static var defaultExecutable: Executable { .name("swift") } - public var executable: Executable - - public init(executable: Executable) { - self.executable = executable - } - - public func config() -> Configuration { - var genArgs: [String] = [] - - return Configuration( - executable: self.executable, - arguments: Arguments(genArgs), - environment: .inherit - ) - } - - // Build sources into binary products - public func build(_ options: buildCommand.Option...) -> buildCommand { - self.build(options) - } - - // Build sources into binary products - public func build(_ options: [buildCommand.Option]) -> buildCommand { - buildCommand(parent: self, options) - } - - public struct buildCommand { - public var parent: swiftCommand - public var options: [Option] - - public enum Option { - case package_path(FilePath) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(FilePath) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case build_tests - case enable_code_coverage - case show_bin_path - case print_manifest_job_graph - case target(String) - case product(String) - case enable_xctest - case enable_swift_testing - case enable_experimental_swift_testing - case traits(String) - case enable_all_traits - case disable_default_traits - case static_swift_stdlib - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .build_tests: - ["--build-tests"] - case .enable_code_coverage: - ["--enable-code-coverage"] - case .show_bin_path: - ["--show-bin-path"] - case .print_manifest_job_graph: - ["--print-manifest-job-graph"] - case let .target(target): - ["--target", String(describing: target)] - case let .product(product): - ["--product", String(describing: product)] - case .enable_xctest: - ["--enable-xctest"] - case .enable_swift_testing: - ["--enable-swift-testing"] - case .enable_experimental_swift_testing: - ["--enable-experimental-swift-testing"] - case let .traits(traits): - ["--traits", String(describing: traits)] - case .enable_all_traits: - ["--enable-all-traits"] - case .disable_default_traits: - ["--disable-default-traits"] - case .static_swift_stdlib: - ["--static-swift-stdlib"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: swiftCommand, _ options: [buildCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("build") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - // Perform operations on Swift packages - public func package(_ options: packageCommand.Option...) -> packageCommand { - self.package(options) - } - - // Perform operations on Swift packages - public func package(_ options: [packageCommand.Option]) -> packageCommand { - packageCommand(parent: self, options) - } - - public struct packageCommand { - public var parent: swiftCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: swiftCommand, _ options: [packageCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("package") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - - // Add a package dependency to the manifest - public func adddependency(_ options: adddependencyCommand.Option..., dependency: String) -> adddependencyCommand { - self.adddependency(options, dependency: dependency) - } - - // Add a package dependency to the manifest - public func adddependency(_ options: [adddependencyCommand.Option], dependency: String) -> adddependencyCommand { - adddependencyCommand(parent: self, options, dependency: dependency) - } - - public struct adddependencyCommand { - public var parent: packageCommand - public var options: [Option] - public var dependency: String - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case exact(String) - case revision(String) - case branch(String) - case from(String) - case up_to_next_minor_from(String) - case to(String) - case type(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .exact(exact): - ["--exact", String(describing: exact)] - case let .revision(revision): - ["--revision", String(describing: revision)] - case let .branch(branch): - ["--branch", String(describing: branch)] - case let .from(from): - ["--from", String(describing: from)] - case let .up_to_next_minor_from(up_to_next_minor_from): - ["--up-to-next-minor-from", String(describing: up_to_next_minor_from)] - case let .to(to): - ["--to", String(describing: to)] - case let .type(type): - ["--type", String(describing: type)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [adddependencyCommand.Option], dependency: String) { - self.parent = parent - self.options = options - self.dependency = dependency - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("add-dependency") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.dependency.description] - - c.arguments = .init(genArgs) - - return c - } - } - - // Add a new product to the manifest - public func addproduct(_ options: addproductCommand.Option..., name: String) -> addproductCommand { - self.addproduct(options, name: name) - } - - // Add a new product to the manifest - public func addproduct(_ options: [addproductCommand.Option], name: String) -> addproductCommand { - addproductCommand(parent: self, options, name: name) - } - - public struct addproductCommand { - public var parent: packageCommand - public var options: [Option] - public var name: String - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case type(String) - case targets(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .type(type): - ["--type", String(describing: type)] - case let .targets(targets): - ["--targets", String(describing: targets)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [addproductCommand.Option], name: String) { - self.parent = parent - self.options = options - self.name = name - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("add-product") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.name.description] - - c.arguments = .init(genArgs) - - return c - } - } - - // Add a new target to the manifest - public func addtarget(_ options: addtargetCommand.Option..., name: String) -> addtargetCommand { - self.addtarget(options, name: name) - } - - // Add a new target to the manifest - public func addtarget(_ options: [addtargetCommand.Option], name: String) -> addtargetCommand { - addtargetCommand(parent: self, options, name: name) - } - - public struct addtargetCommand { - public var parent: packageCommand - public var options: [Option] - public var name: String - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case type(String) - case dependencies(String) - case url(String) - case path(String) - case checksum(String) - case testing_library(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .type(type): - ["--type", String(describing: type)] - case let .dependencies(dependencies): - ["--dependencies", String(describing: dependencies)] - case let .url(url): - ["--url", String(describing: url)] - case let .path(path): - ["--path", String(describing: path)] - case let .checksum(checksum): - ["--checksum", String(describing: checksum)] - case let .testing_library(testing_library): - ["--testing-library", String(describing: testing_library)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [addtargetCommand.Option], name: String) { - self.parent = parent - self.options = options - self.name = name - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("add-target") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.name.description] - - c.arguments = .init(genArgs) - - return c - } - } - - // Add a new target dependency to the manifest - public func addtargetdependency(_ options: addtargetdependencyCommand.Option..., dependency_name: String, target_name: String) -> addtargetdependencyCommand { - self.addtargetdependency(options, dependency_name: dependency_name, target_name: target_name) - } - - // Add a new target dependency to the manifest - public func addtargetdependency(_ options: [addtargetdependencyCommand.Option], dependency_name: String, target_name: String) -> addtargetdependencyCommand { - addtargetdependencyCommand(parent: self, options, dependency_name: dependency_name, target_name: target_name) - } - - public struct addtargetdependencyCommand { - public var parent: packageCommand - public var options: [Option] - public var dependency_name: String - public var target_name: String - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case package(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .package(package): - ["--package", String(describing: package)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [addtargetdependencyCommand.Option], dependency_name: String, target_name: String) { - self.parent = parent - self.options = options - self.dependency_name = dependency_name - self.target_name = target_name - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("add-target-dependency") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.dependency_name.description] - genArgs += [self.target_name.description] - - c.arguments = .init(genArgs) - - return c - } - } - - // Delete build artifacts - public func clean(_ options: cleanCommand.Option...) -> cleanCommand { - self.clean(options) - } - - // Delete build artifacts - public func clean(_ options: [cleanCommand.Option]) -> cleanCommand { - cleanCommand(parent: self, options) - } - - public struct cleanCommand { - public var parent: packageCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [cleanCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("clean") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - // Purge the global repository cache. - public func purgecache(_ options: purgecacheCommand.Option...) -> purgecacheCommand { - self.purgecache(options) - } - - // Purge the global repository cache. - public func purgecache(_ options: [purgecacheCommand.Option]) -> purgecacheCommand { - purgecacheCommand(parent: self, options) - } - - public struct purgecacheCommand { - public var parent: packageCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [purgecacheCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("purge-cache") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - // Reset the complete cache/build directory - public func reset(_ options: resetCommand.Option...) -> resetCommand { - self.reset(options) - } - - // Reset the complete cache/build directory - public func reset(_ options: [resetCommand.Option]) -> resetCommand { - resetCommand(parent: self, options) - } - - public struct resetCommand { - public var parent: packageCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [resetCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("reset") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - // Update package dependencies - public func update(_ options: updateCommand.Option..., packages: [String]?) -> updateCommand { - self.update(options, packages: packages) - } - - // Update package dependencies - public func update(_ options: [updateCommand.Option], packages: [String]?) -> updateCommand { - updateCommand(parent: self, options, packages: packages) - } - - public struct updateCommand { - public var parent: packageCommand - public var options: [Option] - public var packages: [String]? - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case dry_run - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .dry_run: - ["--dry-run"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [updateCommand.Option], packages: [String]?) { - self.parent = parent - self.options = options - self.packages = packages - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("update") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - if let packages = self.packages { genArgs += packages.map(\.description) } - - c.arguments = .init(genArgs) - - return c - } - } - - // Describe the current package - public func describe(_ options: describeCommand.Option...) -> describeCommand { - self.describe(options) - } - - // Describe the current package - public func describe(_ options: [describeCommand.Option]) -> describeCommand { - describeCommand(parent: self, options) - } - - public struct describeCommand { - public var parent: packageCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case type(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .type(type): - ["--type", String(describing: type)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [describeCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("describe") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - // Initialize a new package - public func _init(_ options: initCommand.Option...) -> initCommand { - self._init(options) - } - - // Initialize a new package - public func _init(_ options: [initCommand.Option]) -> initCommand { - initCommand(parent: self, options) - } - - public struct initCommand { - public var parent: packageCommand - public var options: [Option] - - public enum Option { - case package_path(FilePath) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case type(String) - case enable_xctest - case enable_swift_testing - case enable_experimental_swift_testing - case name(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .type(type): - ["--type", String(describing: type)] - case .enable_xctest: - ["--enable-xctest"] - case .enable_swift_testing: - ["--enable-swift-testing"] - case .enable_experimental_swift_testing: - ["--enable-experimental-swift-testing"] - case let .name(name): - ["--name", String(describing: name)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [initCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("init") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - public func _format(_ options: _formatCommand.Option..., swift_format_flags: [String]?) -> _formatCommand { - self._format(options, swift_format_flags: swift_format_flags) - } - - public func _format(_ options: [_formatCommand.Option], swift_format_flags: [String]?) -> _formatCommand { - _formatCommand(parent: self, options, swift_format_flags: swift_format_flags) - } - - public struct _formatCommand { - public var parent: packageCommand - public var options: [Option] - public var swift_format_flags: [String]? - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [_formatCommand.Option], swift_format_flags: [String]?) { - self.parent = parent - self.options = options - self.swift_format_flags = swift_format_flags - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("_format") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - if let swift_format_flags = self.swift_format_flags { genArgs += swift_format_flags.map(\.description) } - - c.arguments = .init(genArgs) - - return c - } - } - - // Offers the ability to install executable products of the current package. - public func experimentalinstall(_ options: experimentalinstallCommand.Option...) -> experimentalinstallCommand { - self.experimentalinstall(options) - } - - // Offers the ability to install executable products of the current package. - public func experimentalinstall(_ options: [experimentalinstallCommand.Option]) -> experimentalinstallCommand { - experimentalinstallCommand(parent: self, options) - } - - public struct experimentalinstallCommand { - public var parent: packageCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case product(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .product(product): - ["--product", String(describing: product)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [experimentalinstallCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("experimental-install") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - // Offers the ability to uninstall executable products previously installed by `swift package experimental-install`. - public func experimentaluninstall(_ options: experimentaluninstallCommand.Option..., name: String) -> experimentaluninstallCommand { - self.experimentaluninstall(options, name: name) - } - - // Offers the ability to uninstall executable products previously installed by `swift package experimental-install`. - public func experimentaluninstall(_ options: [experimentaluninstallCommand.Option], name: String) -> experimentaluninstallCommand { - experimentaluninstallCommand(parent: self, options, name: name) - } - - public struct experimentaluninstallCommand { - public var parent: packageCommand - public var options: [Option] - public var name: String - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [experimentaluninstallCommand.Option], name: String) { - self.parent = parent - self.options = options - self.name = name - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("experimental-uninstall") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.name.description] - - c.arguments = .init(genArgs) - - return c - } - } - - // Diagnose API-breaking changes to Swift modules in a package - public func diagnoseapibreakingchanges(_ options: diagnoseapibreakingchangesCommand.Option..., treeish: String) -> diagnoseapibreakingchangesCommand { - self.diagnoseapibreakingchanges(options, treeish: treeish) - } - - // Diagnose API-breaking changes to Swift modules in a package - public func diagnoseapibreakingchanges(_ options: [diagnoseapibreakingchangesCommand.Option], treeish: String) -> diagnoseapibreakingchangesCommand { - diagnoseapibreakingchangesCommand(parent: self, options, treeish: treeish) - } - - public struct diagnoseapibreakingchangesCommand { - public var parent: packageCommand - public var options: [Option] - public var treeish: String - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case breakage_allowlist_path(String) - case products(String) - case targets(String) - case traits(String) - case enable_all_traits - case disable_default_traits - case baseline_dir(String) - case regenerate_baseline - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .breakage_allowlist_path(breakage_allowlist_path): - ["--breakage-allowlist-path", String(describing: breakage_allowlist_path)] - case let .products(products): - ["--products", String(describing: products)] - case let .targets(targets): - ["--targets", String(describing: targets)] - case let .traits(traits): - ["--traits", String(describing: traits)] - case .enable_all_traits: - ["--enable-all-traits"] - case .disable_default_traits: - ["--disable-default-traits"] - case let .baseline_dir(baseline_dir): - ["--baseline-dir", String(describing: baseline_dir)] - case .regenerate_baseline: - ["--regenerate-baseline"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [diagnoseapibreakingchangesCommand.Option], treeish: String) { - self.parent = parent - self.options = options - self.treeish = treeish - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("diagnose-api-breaking-changes") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.treeish.description] - - c.arguments = .init(genArgs) - - return c - } - } - - // Deprecated - use `swift package diagnose-api-breaking-changes` instead - public func experimentalapidiff(_ options: experimentalapidiffCommand.Option..., args: [String]?) -> experimentalapidiffCommand { - self.experimentalapidiff(options, args: args) - } - - // Deprecated - use `swift package diagnose-api-breaking-changes` instead - public func experimentalapidiff(_ options: [experimentalapidiffCommand.Option], args: [String]?) -> experimentalapidiffCommand { - experimentalapidiffCommand(parent: self, options, args: args) - } - - public struct experimentalapidiffCommand { - public var parent: packageCommand - public var options: [Option] - public var args: [String]? - - public enum Option { - case version - case help - - public func args() -> [String] { - switch self { - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [experimentalapidiffCommand.Option], args: [String]?) { - self.parent = parent - self.options = options - self.args = args - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("experimental-api-diff") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - if let args = self.args { genArgs += args.map(\.description) } - - c.arguments = .init(genArgs) - - return c - } - } - - // Dump Symbol Graph - public func dumpsymbolgraph(_ options: dumpsymbolgraphCommand.Option...) -> dumpsymbolgraphCommand { - self.dumpsymbolgraph(options) - } - - // Dump Symbol Graph - public func dumpsymbolgraph(_ options: [dumpsymbolgraphCommand.Option]) -> dumpsymbolgraphCommand { - dumpsymbolgraphCommand(parent: self, options) - } - - public struct dumpsymbolgraphCommand { - public var parent: packageCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case pretty_print - case skip_synthesized_members - case minimum_access_level(String) - case skip_inherited_docs - case include_spi_symbols - case emit_extension_block_symbols - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .pretty_print: - ["--pretty-print"] - case .skip_synthesized_members: - ["--skip-synthesized-members"] - case let .minimum_access_level(minimum_access_level): - ["--minimum-access-level", String(describing: minimum_access_level)] - case .skip_inherited_docs: - ["--skip-inherited-docs"] - case .include_spi_symbols: - ["--include-spi-symbols"] - case .emit_extension_block_symbols: - ["--emit-extension-block-symbols"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [dumpsymbolgraphCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("dump-symbol-graph") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - public func dumppif(_ options: dumppifCommand.Option...) -> dumppifCommand { - self.dumppif(options) - } - - public func dumppif(_ options: [dumppifCommand.Option]) -> dumppifCommand { - dumppifCommand(parent: self, options) - } - - public struct dumppifCommand { - public var parent: packageCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case preserve_structure - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .preserve_structure: - ["--preserve-structure"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [dumppifCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("dump-pif") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - // Print parsed Package.swift as JSON - public func dumppackage(_ options: dumppackageCommand.Option...) -> dumppackageCommand { - self.dumppackage(options) - } - - // Print parsed Package.swift as JSON - public func dumppackage(_ options: [dumppackageCommand.Option]) -> dumppackageCommand { - dumppackageCommand(parent: self, options) - } - - public struct dumppackageCommand { - public var parent: packageCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [dumppackageCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("dump-package") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - // Put a package in editable mode - public func edit(_ options: editCommand.Option..., package_identity: String) -> editCommand { - self.edit(options, package_identity: package_identity) - } - - // Put a package in editable mode - public func edit(_ options: [editCommand.Option], package_identity: String) -> editCommand { - editCommand(parent: self, options, package_identity: package_identity) - } - - public struct editCommand { - public var parent: packageCommand - public var options: [Option] - public var package_identity: String - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case revision(String) - case branch(String) - case path(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .revision(revision): - ["--revision", String(describing: revision)] - case let .branch(branch): - ["--branch", String(describing: branch)] - case let .path(path): - ["--path", String(describing: path)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [editCommand.Option], package_identity: String) { - self.parent = parent - self.options = options - self.package_identity = package_identity - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("edit") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.package_identity.description] - - c.arguments = .init(genArgs) - - return c - } - } - - // Remove a package from editable mode - public func unedit(_ options: uneditCommand.Option..., package_identity: String) -> uneditCommand { - self.unedit(options, package_identity: package_identity) - } - - // Remove a package from editable mode - public func unedit(_ options: [uneditCommand.Option], package_identity: String) -> uneditCommand { - uneditCommand(parent: self, options, package_identity: package_identity) - } - - public struct uneditCommand { - public var parent: packageCommand - public var options: [Option] - public var package_identity: String - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case force - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .force: - ["--force"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [uneditCommand.Option], package_identity: String) { - self.parent = parent - self.options = options - self.package_identity = package_identity - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("unedit") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.package_identity.description] - - c.arguments = .init(genArgs) - - return c - } - } - - // Manipulate configuration of the package - public func config(_ options: configCommand.Option...) -> configCommand { - self.config(options) - } - - // Manipulate configuration of the package - public func config(_ options: [configCommand.Option]) -> configCommand { - configCommand(parent: self, options) - } - - public struct configCommand { - public var parent: packageCommand - public var options: [Option] - - public enum Option { - case version - case help - - public func args() -> [String] { - switch self { - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [configCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("config") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - - // Set a mirror for a dependency - public func setmirror(_ options: setmirrorCommand.Option...) -> setmirrorCommand { - self.setmirror(options) - } - - // Set a mirror for a dependency - public func setmirror(_ options: [setmirrorCommand.Option]) -> setmirrorCommand { - setmirrorCommand(parent: self, options) - } - - public struct setmirrorCommand { - public var parent: configCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case package_url(String) - case original_url(String) - case mirror_url(String) - case original(String) - case mirror(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .package_url(package_url): - ["--package-url", String(describing: package_url)] - case let .original_url(original_url): - ["--original-url", String(describing: original_url)] - case let .mirror_url(mirror_url): - ["--mirror-url", String(describing: mirror_url)] - case let .original(original): - ["--original", String(describing: original)] - case let .mirror(mirror): - ["--mirror", String(describing: mirror)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: configCommand, _ options: [setmirrorCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("set-mirror") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - // Remove an existing mirror - public func unsetmirror(_ options: unsetmirrorCommand.Option...) -> unsetmirrorCommand { - self.unsetmirror(options) - } - - // Remove an existing mirror - public func unsetmirror(_ options: [unsetmirrorCommand.Option]) -> unsetmirrorCommand { - unsetmirrorCommand(parent: self, options) - } - - public struct unsetmirrorCommand { - public var parent: configCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case package_url(String) - case original_url(String) - case mirror_url(String) - case original(String) - case mirror(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .package_url(package_url): - ["--package-url", String(describing: package_url)] - case let .original_url(original_url): - ["--original-url", String(describing: original_url)] - case let .mirror_url(mirror_url): - ["--mirror-url", String(describing: mirror_url)] - case let .original(original): - ["--original", String(describing: original)] - case let .mirror(mirror): - ["--mirror", String(describing: mirror)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: configCommand, _ options: [unsetmirrorCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("unset-mirror") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - // Print mirror configuration for the given package dependency - public func getmirror(_ options: getmirrorCommand.Option...) -> getmirrorCommand { - self.getmirror(options) - } - - // Print mirror configuration for the given package dependency - public func getmirror(_ options: [getmirrorCommand.Option]) -> getmirrorCommand { - getmirrorCommand(parent: self, options) - } - - public struct getmirrorCommand { - public var parent: configCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case package_url(String) - case original_url(String) - case original(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .package_url(package_url): - ["--package-url", String(describing: package_url)] - case let .original_url(original_url): - ["--original-url", String(describing: original_url)] - case let .original(original): - ["--original", String(describing: original)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: configCommand, _ options: [getmirrorCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("get-mirror") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - } - - // Resolve package dependencies - public func resolve(_ options: resolveCommand.Option..., package_name: String? = nil) -> resolveCommand { - self.resolve(options, package_name: package_name) - } - - // Resolve package dependencies - public func resolve(_ options: [resolveCommand.Option], package_name: String? = nil) -> resolveCommand { - resolveCommand(parent: self, options, package_name: package_name) - } - - public struct resolveCommand { - public var parent: packageCommand - public var options: [Option] - public var package_name: String? - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case version(String) - case branch(String) - case revision(String) - case version2 - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .version(version): - ["--version", String(describing: version)] - case let .branch(branch): - ["--branch", String(describing: branch)] - case let .revision(revision): - ["--revision", String(describing: revision)] - case .version2: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [resolveCommand.Option], package_name: String? = nil) { - self.parent = parent - self.options = options - self.package_name = package_name - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("resolve") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - if let package_name = self.package_name { genArgs += [package_name.description] } - - c.arguments = .init(genArgs) - - return c - } - } - - public func fetch(_ options: fetchCommand.Option..., package_name: String? = nil) -> fetchCommand { - self.fetch(options, package_name: package_name) - } - - public func fetch(_ options: [fetchCommand.Option], package_name: String? = nil) -> fetchCommand { - fetchCommand(parent: self, options, package_name: package_name) - } - - public struct fetchCommand { - public var parent: packageCommand - public var options: [Option] - public var package_name: String? - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case version2(String) - case branch(String) - case revision(String) - case version3 - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .version2(version2): - ["--version", String(describing: version2)] - case let .branch(branch): - ["--branch", String(describing: branch)] - case let .revision(revision): - ["--revision", String(describing: revision)] - case .version3: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [fetchCommand.Option], package_name: String? = nil) { - self.parent = parent - self.options = options - self.package_name = package_name - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("fetch") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - if let package_name = self.package_name { genArgs += [package_name.description] } - - c.arguments = .init(genArgs) - - return c - } - } - - // Print the resolved dependency graph - public func showdependencies(_ options: showdependenciesCommand.Option...) -> showdependenciesCommand { - self.showdependencies(options) - } - - // Print the resolved dependency graph - public func showdependencies(_ options: [showdependenciesCommand.Option]) -> showdependenciesCommand { - showdependenciesCommand(parent: self, options) - } - - public struct showdependenciesCommand { - public var parent: packageCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case format(String) - case output_path(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .format(format): - ["--format", String(describing: format)] - case let .output_path(output_path): - ["--output-path", String(describing: output_path)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [showdependenciesCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("show-dependencies") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - // List the available executables from this package. - public func showexecutables(_ options: showexecutablesCommand.Option...) -> showexecutablesCommand { - self.showexecutables(options) - } - - // List the available executables from this package. - public func showexecutables(_ options: [showexecutablesCommand.Option]) -> showexecutablesCommand { - showexecutablesCommand(parent: self, options) - } - - public struct showexecutablesCommand { - public var parent: packageCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case format(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .format(format): - ["--format", String(describing: format)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [showexecutablesCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("show-executables") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - // Manipulate tools version of the current package - public func toolsversion(_ options: toolsversionCommand.Option...) -> toolsversionCommand { - self.toolsversion(options) - } - - // Manipulate tools version of the current package - public func toolsversion(_ options: [toolsversionCommand.Option]) -> toolsversionCommand { - toolsversionCommand(parent: self, options) - } - - public struct toolsversionCommand { - public var parent: packageCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case set_current - case set(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .set_current: - ["--set-current"] - case let .set(set): - ["--set", String(describing: set)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [toolsversionCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("tools-version") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - // Compute the checksum for a binary artifact. - public func computechecksum(_ options: computechecksumCommand.Option..., path: String) -> computechecksumCommand { - self.computechecksum(options, path: path) - } - - // Compute the checksum for a binary artifact. - public func computechecksum(_ options: [computechecksumCommand.Option], path: String) -> computechecksumCommand { - computechecksumCommand(parent: self, options, path: path) - } - - public struct computechecksumCommand { - public var parent: packageCommand - public var options: [Option] - public var path: String - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [computechecksumCommand.Option], path: String) { - self.parent = parent - self.options = options - self.path = path - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("compute-checksum") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.path.description] - - c.arguments = .init(genArgs) - - return c - } - } - - // Create a source archive for the package - public func archivesource(_ options: archivesourceCommand.Option...) -> archivesourceCommand { - self.archivesource(options) - } - - // Create a source archive for the package - public func archivesource(_ options: [archivesourceCommand.Option]) -> archivesourceCommand { - archivesourceCommand(parent: self, options) - } - - public struct archivesourceCommand { - public var parent: packageCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case output(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case let .output(output): - ["--output", String(describing: output)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [archivesourceCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("archive-source") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - // Completion command (for shell completions) - public func completiontool(_ options: completiontoolCommand.Option..., mode: String) -> completiontoolCommand { - self.completiontool(options, mode: mode) - } - - // Completion command (for shell completions) - public func completiontool(_ options: [completiontoolCommand.Option], mode: String) -> completiontoolCommand { - completiontoolCommand(parent: self, options, mode: mode) - } - - public struct completiontoolCommand { - public var parent: packageCommand - public var options: [Option] - public var mode: String - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [completiontoolCommand.Option], mode: String) { - self.parent = parent - self.options = options - self.mode = mode - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("completion-tool") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.mode.description] - - c.arguments = .init(genArgs) - - return c - } - } - - // Invoke a command plugin or perform other actions on command plugins - public func plugin(_ options: pluginCommand.Option..., command: String? = nil, arguments: [String]?) -> pluginCommand { - self.plugin(options, command: command, arguments: arguments) - } - - // Invoke a command plugin or perform other actions on command plugins - public func plugin(_ options: [pluginCommand.Option], command: String? = nil, arguments: [String]?) -> pluginCommand { - pluginCommand(parent: self, options, command: command, arguments: arguments) - } - - public struct pluginCommand { - public var parent: packageCommand - public var options: [Option] - public var command: String? - public var arguments: [String]? - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case list - case allow_writing_to_package_directory - case allow_writing_to_directory(String) - case allow_network_connections(String) - case package(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .list: - ["--list"] - case .allow_writing_to_package_directory: - ["--allow-writing-to-package-directory"] - case let .allow_writing_to_directory(allow_writing_to_directory): - ["--allow-writing-to-directory", String(describing: allow_writing_to_directory)] - case let .allow_network_connections(allow_network_connections): - ["--allow-network-connections", String(describing: allow_network_connections)] - case let .package(package): - ["--package", String(describing: package)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [pluginCommand.Option], command: String? = nil, arguments: [String]?) { - self.parent = parent - self.options = options - self.command = command - self.arguments = arguments - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("plugin") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - if let command = self.command { genArgs += [command.description] } - if let arguments = self.arguments { genArgs += arguments.map(\.description) } - - c.arguments = .init(genArgs) - - return c - } - } - - public func defaultcommand(_ options: defaultcommandCommand.Option..., remaining: [String]?) -> defaultcommandCommand { - self.defaultcommand(options, remaining: remaining) - } - - public func defaultcommand(_ options: [defaultcommandCommand.Option], remaining: [String]?) -> defaultcommandCommand { - defaultcommandCommand(parent: self, options, remaining: remaining) - } - - public struct defaultcommandCommand { - public var parent: packageCommand - public var options: [Option] - public var remaining: [String]? - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case enable_dependency_cache - case disable_package_manifest_caching - case enable_build_manifest_caching - case manifest_cache(String) - case enable_experimental_prebuilts - case experimental_prebuilts_download_url(String) - case experimental_prebuilts_root_cert(String) - case verbose - case very_verbose - case quiet - case disable_sandbox - case netrc - case enable_netrc - case netrc_file(String) - case enable_keychain - case resolver_fingerprint_checking(String) - case resolver_signing_entity_checking(String) - case enable_signature_validation - case enable_prefetching - case force_resolved_versions - case skip_update - case disable_scm_to_registry_transformation - case use_registry_identity_for_scm - case replace_scm_with_registry - case default_registry_url(String) - case configuration(String) - case Xcc(String) - case Xswiftc(String) - case Xlinker(String) - case Xcxx(String) - case Xxcbuild(String) - case Xbuild_tools_swiftc(String) - case Xmanifest(String) - case triple(String) - case sdk(String) - case toolchain(String) - case arch(String) - case experimental_swift_sdk(String) - case swift_sdk(String) - case sanitize(String) - case auto_index_store - case experimental_prepare_for_indexing - case experimental_prepare_for_indexing_no_lazy - case enable_parseable_module_interfaces - case jobs(String) - case use_integrated_swift_driver - case explicit_target_dependency_import_check(String) - case experimental_explicit_module_build - case build_system(String) - case debug_info_format(String) - case enable_test_discovery - case experimental_test_entry_point_path(String) - case experimental_lto_mode(String) - case enable_get_task_allow_entitlement - case omit_frame_pointers - case enable_dead_strip - case disable_local_rpath - case allow_writing_to_package_directory - case allow_writing_to_directory(String) - case allow_network_connections(String) - case package(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .enable_dependency_cache: - ["--enable-dependency-cache"] - case .disable_package_manifest_caching: - ["--disable-package-manifest-caching"] - case .enable_build_manifest_caching: - ["--enable-build-manifest-caching"] - case let .manifest_cache(manifest_cache): - ["--manifest-cache", String(describing: manifest_cache)] - case .enable_experimental_prebuilts: - ["--enable-experimental-prebuilts"] - case let .experimental_prebuilts_download_url(experimental_prebuilts_download_url): - ["--experimental-prebuilts-download-url", String(describing: experimental_prebuilts_download_url)] - case let .experimental_prebuilts_root_cert(experimental_prebuilts_root_cert): - ["--experimental-prebuilts-root-cert", String(describing: experimental_prebuilts_root_cert)] - case .verbose: - ["--verbose"] - case .very_verbose: - ["--very-verbose"] - case .quiet: - ["--quiet"] - case .disable_sandbox: - ["--disable-sandbox"] - case .netrc: - ["--netrc"] - case .enable_netrc: - ["--enable-netrc"] - case let .netrc_file(netrc_file): - ["--netrc-file", String(describing: netrc_file)] - case .enable_keychain: - ["--enable-keychain"] - case let .resolver_fingerprint_checking(resolver_fingerprint_checking): - ["--resolver-fingerprint-checking", String(describing: resolver_fingerprint_checking)] - case let .resolver_signing_entity_checking(resolver_signing_entity_checking): - ["--resolver-signing-entity-checking", String(describing: resolver_signing_entity_checking)] - case .enable_signature_validation: - ["--enable-signature-validation"] - case .enable_prefetching: - ["--enable-prefetching"] - case .force_resolved_versions: - ["--force-resolved-versions"] - case .skip_update: - ["--skip-update"] - case .disable_scm_to_registry_transformation: - ["--disable-scm-to-registry-transformation"] - case .use_registry_identity_for_scm: - ["--use-registry-identity-for-scm"] - case .replace_scm_with_registry: - ["--replace-scm-with-registry"] - case let .default_registry_url(default_registry_url): - ["--default-registry-url", String(describing: default_registry_url)] - case let .configuration(configuration): - ["--configuration", String(describing: configuration)] - case let .Xcc(Xcc): - ["-Xcc", String(describing: Xcc)] - case let .Xswiftc(Xswiftc): - ["-Xswiftc", String(describing: Xswiftc)] - case let .Xlinker(Xlinker): - ["-Xlinker", String(describing: Xlinker)] - case let .Xcxx(Xcxx): - ["-Xcxx", String(describing: Xcxx)] - case let .Xxcbuild(Xxcbuild): - ["-Xxcbuild", String(describing: Xxcbuild)] - case let .Xbuild_tools_swiftc(Xbuild_tools_swiftc): - ["-Xbuild-tools-swiftc", String(describing: Xbuild_tools_swiftc)] - case let .Xmanifest(Xmanifest): - ["-Xmanifest", String(describing: Xmanifest)] - case let .triple(triple): - ["--triple", String(describing: triple)] - case let .sdk(sdk): - ["--sdk", String(describing: sdk)] - case let .toolchain(toolchain): - ["--toolchain", String(describing: toolchain)] - case let .arch(arch): - ["--arch", String(describing: arch)] - case let .experimental_swift_sdk(experimental_swift_sdk): - ["--experimental-swift-sdk", String(describing: experimental_swift_sdk)] - case let .swift_sdk(swift_sdk): - ["--swift-sdk", String(describing: swift_sdk)] - case let .sanitize(sanitize): - ["--sanitize", String(describing: sanitize)] - case .auto_index_store: - ["--auto-index-store"] - case .experimental_prepare_for_indexing: - ["--experimental-prepare-for-indexing"] - case .experimental_prepare_for_indexing_no_lazy: - ["--experimental-prepare-for-indexing-no-lazy"] - case .enable_parseable_module_interfaces: - ["--enable-parseable-module-interfaces"] - case let .jobs(jobs): - ["--jobs", String(describing: jobs)] - case .use_integrated_swift_driver: - ["--use-integrated-swift-driver"] - case let .explicit_target_dependency_import_check(explicit_target_dependency_import_check): - ["--explicit-target-dependency-import-check", String(describing: explicit_target_dependency_import_check)] - case .experimental_explicit_module_build: - ["--experimental-explicit-module-build"] - case let .build_system(build_system): - ["--build-system", String(describing: build_system)] - case let .debug_info_format(debug_info_format): - ["-debug-info-format", String(describing: debug_info_format)] - case .enable_test_discovery: - ["--enable-test-discovery"] - case let .experimental_test_entry_point_path(experimental_test_entry_point_path): - ["--experimental-test-entry-point-path", String(describing: experimental_test_entry_point_path)] - case let .experimental_lto_mode(experimental_lto_mode): - ["--experimental-lto-mode", String(describing: experimental_lto_mode)] - case .enable_get_task_allow_entitlement: - ["--enable-get-task-allow-entitlement"] - case .omit_frame_pointers: - ["--omit-frame-pointers"] - case .enable_dead_strip: - ["--enable-dead-strip"] - case .disable_local_rpath: - ["--disable-local-rpath"] - case .allow_writing_to_package_directory: - ["--allow-writing-to-package-directory"] - case let .allow_writing_to_directory(allow_writing_to_directory): - ["--allow-writing-to-directory", String(describing: allow_writing_to_directory)] - case let .allow_network_connections(allow_network_connections): - ["--allow-network-connections", String(describing: allow_network_connections)] - case let .package(package): - ["--package", String(describing: package)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: packageCommand, _ options: [defaultcommandCommand.Option], remaining: [String]?) { - self.parent = parent - self.options = options - self.remaining = remaining - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("default-command") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - if let remaining = self.remaining { genArgs += remaining.map(\.description) } - - c.arguments = .init(genArgs) - - return c - } - } - } - - // Perform operations on Swift SDKs. - public func sdk(_ options: sdkCommand.Option...) -> sdkCommand { - self.sdk(options) - } - - // Perform operations on Swift SDKs. - public func sdk(_ options: [sdkCommand.Option]) -> sdkCommand { - sdkCommand(parent: self, options) - } - - public struct sdkCommand { - public var parent: swiftCommand - public var options: [Option] - - public enum Option { - case version - case help - - public func args() -> [String] { - switch self { - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: swiftCommand, _ options: [sdkCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("sdk") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - - // Manages configuration options for installed Swift SDKs. - public func configure(_ options: configureCommand.Option..., sdk_id: String, target_triple: String) -> configureCommand { - self.configure(options, sdk_id: sdk_id, target_triple: target_triple) - } - - // Manages configuration options for installed Swift SDKs. - public func configure(_ options: [configureCommand.Option], sdk_id: String, target_triple: String) -> configureCommand { - configureCommand(parent: self, options, sdk_id: sdk_id, target_triple: target_triple) - } - - public struct configureCommand { - public var parent: sdkCommand - public var options: [Option] - public var sdk_id: String - public var target_triple: String - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case sdk_root_path(String) - case swift_resources_path(String) - case swift_static_resources_path(String) - case include_search_path(String) - case library_search_path(String) - case toolset_path(String) - case reset - case show_configuration - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case let .sdk_root_path(sdk_root_path): - ["--sdk-root-path", String(describing: sdk_root_path)] - case let .swift_resources_path(swift_resources_path): - ["--swift-resources-path", String(describing: swift_resources_path)] - case let .swift_static_resources_path(swift_static_resources_path): - ["--swift-static-resources-path", String(describing: swift_static_resources_path)] - case let .include_search_path(include_search_path): - ["--include-search-path", String(describing: include_search_path)] - case let .library_search_path(library_search_path): - ["--library-search-path", String(describing: library_search_path)] - case let .toolset_path(toolset_path): - ["--toolset-path", String(describing: toolset_path)] - case .reset: - ["--reset"] - case .show_configuration: - ["--show-configuration"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: sdkCommand, _ options: [configureCommand.Option], sdk_id: String, target_triple: String) { - self.parent = parent - self.options = options - self.sdk_id = sdk_id - self.target_triple = target_triple - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("configure") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.sdk_id.description] - genArgs += [self.target_triple.description] - - c.arguments = .init(genArgs) - - return c - } - } - - // Deprecated: use `swift sdk configure` instead.Manages configuration options for installed Swift SDKs. - public func configuration(_ options: configurationCommand.Option...) -> configurationCommand { - self.configuration(options) - } - - // Deprecated: use `swift sdk configure` instead.Manages configuration options for installed Swift SDKs. - public func configuration(_ options: [configurationCommand.Option]) -> configurationCommand { - configurationCommand(parent: self, options) - } - - public struct configurationCommand { - public var parent: sdkCommand - public var options: [Option] - - public enum Option { - case version - case help - - public func args() -> [String] { - switch self { - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: sdkCommand, _ options: [configurationCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("configuration") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - - // Resets configuration properties currently applied to a given Swift SDK and target triple. If no specific property is specified, all of them are reset for the Swift SDK. - public func reset(_ options: resetCommand.Option..., sdk_id: String, target_triple: String) -> resetCommand { - self.reset(options, sdk_id: sdk_id, target_triple: target_triple) - } - - // Resets configuration properties currently applied to a given Swift SDK and target triple. If no specific property is specified, all of them are reset for the Swift SDK. - public func reset(_ options: [resetCommand.Option], sdk_id: String, target_triple: String) -> resetCommand { - resetCommand(parent: self, options, sdk_id: sdk_id, target_triple: target_triple) - } - - public struct resetCommand { - public var parent: configurationCommand - public var options: [Option] - public var sdk_id: String - public var target_triple: String - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case sdk_root_path - case swift_resources_path - case swift_static_resources_path - case include_search_path - case library_search_path - case toolset_path - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .sdk_root_path: - ["--sdk-root-path"] - case .swift_resources_path: - ["--swift-resources-path"] - case .swift_static_resources_path: - ["--swift-static-resources-path"] - case .include_search_path: - ["--include-search-path"] - case .library_search_path: - ["--library-search-path"] - case .toolset_path: - ["--toolset-path"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: configurationCommand, _ options: [resetCommand.Option], sdk_id: String, target_triple: String) { - self.parent = parent - self.options = options - self.sdk_id = sdk_id - self.target_triple = target_triple - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("reset") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.sdk_id.description] - genArgs += [self.target_triple.description] - - c.arguments = .init(genArgs) - - return c - } - } - - // Sets configuration options for installed Swift SDKs. - public func set(_ options: setCommand.Option..., sdk_id: String, target_triple: String) -> setCommand { - self.set(options, sdk_id: sdk_id, target_triple: target_triple) - } - - // Sets configuration options for installed Swift SDKs. - public func set(_ options: [setCommand.Option], sdk_id: String, target_triple: String) -> setCommand { - setCommand(parent: self, options, sdk_id: sdk_id, target_triple: target_triple) - } - - public struct setCommand { - public var parent: configurationCommand - public var options: [Option] - public var sdk_id: String - public var target_triple: String - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case sdk_root_path(String) - case swift_resources_path(String) - case swift_static_resources_path(String) - case include_search_path(String) - case library_search_path(String) - case toolset_path(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case let .sdk_root_path(sdk_root_path): - ["--sdk-root-path", String(describing: sdk_root_path)] - case let .swift_resources_path(swift_resources_path): - ["--swift-resources-path", String(describing: swift_resources_path)] - case let .swift_static_resources_path(swift_static_resources_path): - ["--swift-static-resources-path", String(describing: swift_static_resources_path)] - case let .include_search_path(include_search_path): - ["--include-search-path", String(describing: include_search_path)] - case let .library_search_path(library_search_path): - ["--library-search-path", String(describing: library_search_path)] - case let .toolset_path(toolset_path): - ["--toolset-path", String(describing: toolset_path)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: configurationCommand, _ options: [setCommand.Option], sdk_id: String, target_triple: String) { - self.parent = parent - self.options = options - self.sdk_id = sdk_id - self.target_triple = target_triple - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("set") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.sdk_id.description] - genArgs += [self.target_triple.description] - - c.arguments = .init(genArgs) - - return c - } - } - - // Prints all configuration properties currently applied to a given Swift SDK and target triple. - public func show(_ options: showCommand.Option..., sdk_id: String, target_triple: String) -> showCommand { - self.show(options, sdk_id: sdk_id, target_triple: target_triple) - } - - // Prints all configuration properties currently applied to a given Swift SDK and target triple. - public func show(_ options: [showCommand.Option], sdk_id: String, target_triple: String) -> showCommand { - showCommand(parent: self, options, sdk_id: sdk_id, target_triple: target_triple) - } - - public struct showCommand { - public var parent: configurationCommand - public var options: [Option] - public var sdk_id: String - public var target_triple: String - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: configurationCommand, _ options: [showCommand.Option], sdk_id: String, target_triple: String) { - self.parent = parent - self.options = options - self.sdk_id = sdk_id - self.target_triple = target_triple - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("show") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.sdk_id.description] - genArgs += [self.target_triple.description] - - c.arguments = .init(genArgs) - - return c - } - } - } - - // Installs a given Swift SDK bundle to a location discoverable by SwiftPM. If the artifact bundle is at a remote location, it's downloaded to local filesystem first. - public func install(_ options: installCommand.Option..., bundle_path_or_url: String) -> installCommand { - self.install(options, bundle_path_or_url: bundle_path_or_url) - } - - // Installs a given Swift SDK bundle to a location discoverable by SwiftPM. If the artifact bundle is at a remote location, it's downloaded to local filesystem first. - public func install(_ options: [installCommand.Option], bundle_path_or_url: String) -> installCommand { - installCommand(parent: self, options, bundle_path_or_url: bundle_path_or_url) - } - - public struct installCommand { - public var parent: sdkCommand - public var options: [Option] - public var bundle_path_or_url: String - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case checksum(String) - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case let .checksum(checksum): - ["--checksum", String(describing: checksum)] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: sdkCommand, _ options: [installCommand.Option], bundle_path_or_url: String) { - self.parent = parent - self.options = options - self.bundle_path_or_url = bundle_path_or_url - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("install") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.bundle_path_or_url.description] - - c.arguments = .init(genArgs) - - return c - } - } - - // Print a list of IDs of available Swift SDKs available on the filesystem. - public func list(_ options: listCommand.Option...) -> listCommand { - self.list(options) - } - - // Print a list of IDs of available Swift SDKs available on the filesystem. - public func list(_ options: [listCommand.Option]) -> listCommand { - listCommand(parent: self, options) - } - - public struct listCommand { - public var parent: sdkCommand - public var options: [Option] - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: sdkCommand, _ options: [listCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("list") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - - // Removes a previously installed Swift SDK bundle from the filesystem. - public func remove(_ options: removeCommand.Option..., sdk_id_or_bundle_name: String) -> removeCommand { - self.remove(options, sdk_id_or_bundle_name: sdk_id_or_bundle_name) - } - - // Removes a previously installed Swift SDK bundle from the filesystem. - public func remove(_ options: [removeCommand.Option], sdk_id_or_bundle_name: String) -> removeCommand { - removeCommand(parent: self, options, sdk_id_or_bundle_name: sdk_id_or_bundle_name) - } - - public struct removeCommand { - public var parent: sdkCommand - public var options: [Option] - public var sdk_id_or_bundle_name: String - - public enum Option { - case package_path(String) - case cache_path(String) - case config_path(String) - case security_path(String) - case scratch_path(String) - case build_path(String) - case multiroot_data_file(String) - case destination(String) - case experimental_swift_sdks_path(String) - case swift_sdks_path(String) - case toolset(String) - case pkg_config_path(String) - case ignore_lock - case version - case help - - public func args() -> [String] { - switch self { - case let .package_path(package_path): - ["--package-path", String(describing: package_path)] - case let .cache_path(cache_path): - ["--cache-path", String(describing: cache_path)] - case let .config_path(config_path): - ["--config-path", String(describing: config_path)] - case let .security_path(security_path): - ["--security-path", String(describing: security_path)] - case let .scratch_path(scratch_path): - ["--scratch-path", String(describing: scratch_path)] - case let .build_path(build_path): - ["--build-path", String(describing: build_path)] - case let .multiroot_data_file(multiroot_data_file): - ["--multiroot-data-file", String(describing: multiroot_data_file)] - case let .destination(destination): - ["--destination", String(describing: destination)] - case let .experimental_swift_sdks_path(experimental_swift_sdks_path): - ["--experimental-swift-sdks-path", String(describing: experimental_swift_sdks_path)] - case let .swift_sdks_path(swift_sdks_path): - ["--swift-sdks-path", String(describing: swift_sdks_path)] - case let .toolset(toolset): - ["--toolset", String(describing: toolset)] - case let .pkg_config_path(pkg_config_path): - ["--pkg-config-path", String(describing: pkg_config_path)] - case .ignore_lock: - ["--ignore-lock"] - case .version: - ["--version"] - case .help: - ["--help"] - } - } - } - - public init(parent: sdkCommand, _ options: [removeCommand.Option], sdk_id_or_bundle_name: String) { - self.parent = parent - self.options = options - self.sdk_id_or_bundle_name = sdk_id_or_bundle_name - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("remove") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - genArgs += [self.sdk_id_or_bundle_name.description] - - c.arguments = .init(genArgs) - - return c - } - } - } - } -} - -extension SystemCommand { - // manipulate tape archives. See tar(1) for more information. - public static func tar(executable: Executable = tarCommand.defaultExecutable, _ options: tarCommand.Option...) -> tarCommand { - Self.tar(executable: executable, options) - } - - // manipulate tape archives. See tar(1) for more information. - public static func tar(executable: Executable = tarCommand.defaultExecutable, _ options: [tarCommand.Option]) -> tarCommand { - tarCommand(executable: executable, options) - } - - public struct tarCommand { - public static var defaultExecutable: Executable { .name("tar") } - public var executable: Executable - public var options: [Option] - - public enum Option { - case directory(FilePath) - - public func args() -> [String] { - switch self { - case let .directory(directory): - ["-C", String(describing: directory)] - } - } - } - - public init(executable: Executable, _ options: [tarCommand.Option]) { - self.executable = executable - self.options = options - } - - public func config() -> Configuration { - var genArgs: [String] = [] - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - return Configuration( - executable: self.executable, - arguments: Arguments(genArgs), - environment: .inherit - ) - } - - public func create(_ options: createCommand.Option..., files: [FilePath]?) -> createCommand { - self.create(options, files: files) - } - - public func create(_ options: [createCommand.Option], files: [FilePath]?) -> createCommand { - createCommand(parent: self, options, files: files) - } - - public struct createCommand { - public var parent: tarCommand - public var options: [Option] - public var files: [FilePath]? - - public enum Option { - case archive(FilePath) - case compressed - case verbose - - public func args() -> [String] { - switch self { - case let .archive(archive): - ["--file", String(describing: archive)] - case .compressed: - ["-z"] - case .verbose: - ["-v"] - } - } - } - - public init(parent: tarCommand, _ options: [createCommand.Option], files: [FilePath]?) { - self.parent = parent - self.options = options - self.files = files - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("--create") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - if let files = self.files { genArgs += files.map(\.description) } - - c.arguments = .init(genArgs) - - return c - } - } - - public func extract(_ options: extractCommand.Option...) -> extractCommand { - self.extract(options) - } - - public func extract(_ options: [extractCommand.Option]) -> extractCommand { - extractCommand(parent: self, options) - } - - public struct extractCommand { - public var parent: tarCommand - public var options: [Option] - - public enum Option { - case archive(FilePath) - case compressed - case verbose - - public func args() -> [String] { - switch self { - case let .archive(archive): - ["--file", String(describing: archive)] - case .compressed: - ["-z"] - case .verbose: - ["-v"] - } - } - } - - public init(parent: tarCommand, _ options: [extractCommand.Option]) { - self.parent = parent - self.options = options - } - - public func config() -> Configuration { - var c = self.parent.config() - - var genArgs = c.arguments.storage.map(\.description) - - genArgs.append("--extract") - - for opt in self.options { - genArgs.append(contentsOf: opt.args()) - } - - c.arguments = .init(genArgs) - - return c - } - } - } -} diff --git a/Tools/generate-command-models/GenerateCommandModels.swift b/Tools/generate-command-models/GenerateCommandModels.swift index 3600345a..d39eda91 100644 --- a/Tools/generate-command-models/GenerateCommandModels.swift +++ b/Tools/generate-command-models/GenerateCommandModels.swift @@ -82,7 +82,7 @@ struct GenerateCommandModels: AsyncParsableCommand { """ } - try await allCmds.write(to: swiftlyCoreDir / "CommandsNew.swift", atomically: true) + try await allCmds.write(to: swiftlyCoreDir / "Commands.swift", atomically: true) } struct Vars { From 4ca2ac0d174a7d994657251c2da21ca568215668 Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Wed, 7 May 2025 10:54:16 -0400 Subject: [PATCH 14/15] Fix compile errors with Linux --- Sources/LinuxPlatform/Linux.swift | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Sources/LinuxPlatform/Linux.swift b/Sources/LinuxPlatform/Linux.swift index 3c9c5f7b..d9992a92 100644 --- a/Sources/LinuxPlatform/Linux.swift +++ b/Sources/LinuxPlatform/Linux.swift @@ -277,9 +277,9 @@ public struct Linux: Platform { if let mockedHomeDir = ctx.mockedHomeDir { var env = ProcessInfo.processInfo.environment env["GNUPGHOME"] = (mockedHomeDir / ".gnupg").string - try await sys.gpg()._import(keys: tmpFile).run(self, env: env, quiet: true) + try await sys.gpg()._import(key: tmpFile).run(self, env: env, quiet: true) } else { - try await sys.gpg()._import(keys: tmpFile).run(self, quiet: true) + try await sys.gpg()._import(key: tmpFile).run(self, quiet: true) } } } @@ -418,9 +418,9 @@ public struct Linux: Platform { if let mockedHomeDir = ctx.mockedHomeDir { var env = ProcessInfo.processInfo.environment env["GNUPGHOME"] = (mockedHomeDir / ".gnupg").string - try await sys.gpg().verify(detachedSignature: sigFile, signedData: archive).run(self, env: env, quiet: false) + try await sys.gpg().verify(detached_signature: sigFile, signed_data: archive).run(self, env: env, quiet: false) } else { - try await sys.gpg().verify(detachedSignature: sigFile, signedData: archive).run(self, quiet: !verbose) + try await sys.gpg().verify(detached_signature: sigFile, signed_data: archive).run(self, quiet: !verbose) } } catch { throw SwiftlyError(message: "Signature verification failed: \(error).") @@ -447,9 +447,9 @@ public struct Linux: Platform { if let mockedHomeDir = ctx.mockedHomeDir { var env = ProcessInfo.processInfo.environment env["GNUPGHOME"] = (mockedHomeDir / ".gnupg").string - try await sys.gpg().verify(detachedSignature: sigFile, signedData: archive).run(self, env: env, quiet: false) + try await sys.gpg().verify(detached_signature: sigFile, signed_data: archive).run(self, env: env, quiet: false) } else { - try await sys.gpg().verify(detachedSignature: sigFile, signedData: archive).run(self, quiet: !verbose) + try await sys.gpg().verify(detached_signature: sigFile, signed_data: archive).run(self, quiet: !verbose) } } catch { throw SwiftlyError(message: "Signature verification failed: \(error).") From 498ddaf789fee89983b13326449109b27010a19e Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Wed, 7 May 2025 11:59:29 -0400 Subject: [PATCH 15/15] Fix formatting in the generator to prevent invalid reformatting --- .../GenerateCommandModels.swift | 24 +++++++------------ 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/Tools/generate-command-models/GenerateCommandModels.swift b/Tools/generate-command-models/GenerateCommandModels.swift index d39eda91..0deb34f3 100644 --- a/Tools/generate-command-models/GenerateCommandModels.swift +++ b/Tools/generate-command-models/GenerateCommandModels.swift @@ -249,7 +249,7 @@ struct GenerateCommandModels: AsyncParsableCommand { let swiftName = command.commandName.replacingOccurrences(of: "-", with: "") var funcName = swiftName - if ["init", "import"] .contains(funcName) { + if ["init", "import"].contains(funcName) { // TODO: handle all of Swift's keywords here funcName = "_" + funcName } @@ -297,10 +297,7 @@ struct GenerateCommandModels: AsyncParsableCommand { public func config() -> Configuration { var genArgs: [String] = [] - \(( - options.asArgs + - vars.asArgs - ).joined(separator: "\n" + indent(1))) + \((options.asArgs + vars.asArgs).joined(separator: "\n" + indent(1))) return Configuration( executable: self.executable, @@ -318,10 +315,7 @@ struct GenerateCommandModels: AsyncParsableCommand { genArgs.append("\(execName)") - \(( - options.asArgs + - vars.asArgs - ).joined(separator: "\n" + indent(1))) + \((options.asArgs + vars.asArgs).joined(separator: "\n" + indent(1))) c.arguments = .init(genArgs) @@ -338,7 +332,8 @@ struct GenerateCommandModels: AsyncParsableCommand { \(helperFunc) public struct \(structName) { - \(( + \( + ( (path.count == 0 ? [ "public static var defaultExecutable: Executable { .name(\"\(execName)\") }", "public var executable: Executable" @@ -348,16 +343,13 @@ struct GenerateCommandModels: AsyncParsableCommand { ]) + options.asDeclaration + vars.asDeclarations - ).joined(separator: "\n" + indent(1))) + ).joined(separator: "\n" + indent(2)) + ) \(options.asEnum.joined(separator: "\n" + indent(1))) public init(\(([path.count == 0 ? "executable: Executable" : "parent: \(command.superCommands!.last!)Command"] + options.asSignature(structName) + vars.asSignature).joined(separator: ", "))) { - \(( - [path.count == 0 ? "self.executable = executable" : "self.parent = parent"] + - options.asInitialization + - vars.asInitializations - ).joined(separator: "\n" + indent(2))) + \(([path.count == 0 ? "self.executable = executable" : "self.parent = parent"] + options.asInitialization + vars.asInitializations).joined(separator: "\n" + indent(2))) } \(configFunc)