Skip to content

Commit 5617043

Browse files
committed
Use global code coverage flag in swift package generate-xcodeproj
There's a conflict between '--enable-code-coverage' in the top-level options and the same flag in the Xcode-project generation command. This uses the top-level flag (which is required for the build parameters, even though it's only ever used by `swift test`) for both purposes.
1 parent eca7824 commit 5617043

File tree

2 files changed

+15
-18
lines changed

2 files changed

+15
-18
lines changed

Sources/Commands/Options.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,9 @@ public struct SwiftToolOptions: ParsableArguments {
189189
}
190190

191191
/// Whether to enable code coverage.
192-
@Flag(name: .customLong("enable-code-coverage"), help: "Test with code coverage enabled")
192+
@Flag(name: .customLong("code-coverage"),
193+
inversion: .prefixedEnableDisable,
194+
help: "Enable code coverage")
193195
var shouldEnableCodeCoverage: Bool = false
194196

195197
// TODO: Does disable-automatic-resolution alias force-resolved-versions?

Sources/Commands/SwiftPackageTool.swift

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -540,11 +540,6 @@ extension SwiftPackageTool {
540540
@Option(help: "Path to xcconfig file", completion: .file())
541541
var xcconfigOverrides: AbsolutePath?
542542

543-
@Flag(name: .customLong("code-coverage"),
544-
inversion: .prefixedEnableDisable,
545-
help: "Enable code coverage in the generated project")
546-
var isCodeCoverageEnabled: Bool = false
547-
548543
@Option(name: .customLong("output"),
549544
help: "Path where the Xcode project should be generated")
550545
var outputPath: AbsolutePath?
@@ -559,16 +554,6 @@ extension SwiftPackageTool {
559554

560555
@Flag(help: "Do not add file references for extra files to the generated Xcode project")
561556
var skipExtraFiles: Bool = false
562-
563-
func xcodeprojOptions(with buildFlags: BuildFlags) -> XcodeprojOptions {
564-
XcodeprojOptions(
565-
flags: buildFlags,
566-
xcconfigOverrides: xcconfigOverrides,
567-
isCodeCoverageEnabled: isCodeCoverageEnabled,
568-
useLegacySchemeGenerator: useLegacySchemeGenerator,
569-
enableAutogeneration: enableAutogeneration,
570-
addExtraFiles: !skipExtraFiles)
571-
}
572557
}
573558

574559
@OptionGroup()
@@ -577,6 +562,16 @@ extension SwiftPackageTool {
577562
@OptionGroup()
578563
var options: Options
579564

565+
func xcodeprojOptions() -> XcodeprojOptions {
566+
XcodeprojOptions(
567+
flags: swiftOptions.buildFlags,
568+
xcconfigOverrides: options.xcconfigOverrides,
569+
isCodeCoverageEnabled: swiftOptions.shouldEnableCodeCoverage,
570+
useLegacySchemeGenerator: options.useLegacySchemeGenerator,
571+
enableAutogeneration: options.enableAutogeneration,
572+
addExtraFiles: !options.skipExtraFiles)
573+
}
574+
580575
func run(_ swiftTool: SwiftTool) throws {
581576
let graph = try swiftTool.loadPackageGraph()
582577

@@ -597,7 +592,7 @@ extension SwiftPackageTool {
597592
}
598593
let xcodeprojPath = Xcodeproj.buildXcodeprojPath(outputDir: dstdir, projectName: projectName)
599594

600-
var genOptions = options.xcodeprojOptions(with: swiftOptions.buildFlags)
595+
var genOptions = xcodeprojOptions()
601596
genOptions.manifestLoader = try swiftTool.getManifestLoader()
602597

603598
try Xcodeproj.generate(
@@ -616,7 +611,7 @@ extension SwiftPackageTool {
616611
diagnostics: swiftTool.diagnostics,
617612
watchmanScriptsDir: swiftTool.buildPath.appending(component: "watchman"),
618613
packageRoot: swiftTool.packageRoot!
619-
).runXcodeprojWatcher(options.xcodeprojOptions(with: swiftOptions.buildFlags))
614+
).runXcodeprojWatcher(xcodeprojOptions())
620615
}
621616
}
622617
}

0 commit comments

Comments
 (0)