Skip to content

Commit 698b140

Browse files
committed
Avoid generating an interface verification job for a package interface when no such interface is emitted
1 parent 8395c0f commit 698b140

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

Sources/SwiftDriver/Jobs/Planning.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -605,7 +605,9 @@ extension Driver {
605605
}
606606
try addVerifyJob(for: .Public)
607607
try addVerifyJob(for: .Private)
608-
try addVerifyJob(for: .Package)
608+
if parsedOptions.hasArgument(.packageName) {
609+
try addVerifyJob(for: .Package)
610+
}
609611
}
610612

611613
private mutating func addAutolinkExtractJob(

Tests/SwiftDriverTests/SwiftDriverTests.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2789,10 +2789,10 @@ final class SwiftDriverTests: XCTestCase {
27892789
// A .package.swiftinterface should only be generated if package-name is passed.
27902790
do {
27912791
var driver = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-module-name", "foo",
2792-
"-package-name", "mypkg",
2792+
"-package-name", "mypkg", "-library-level", "api",
27932793
"-emit-module-interface", "-enable-library-evolution"], env: envVars)
27942794
let plannedJobs = try driver.planBuild()
2795-
XCTAssertEqual(plannedJobs.count, 2)
2795+
XCTAssertEqual(plannedJobs.count, 3)
27962796
let emitInterfaceJob = plannedJobs[0]
27972797
XCTAssertTrue(emitInterfaceJob.commandLine.contains(.flag("-emit-module-interface-path")))
27982798
XCTAssertTrue(emitInterfaceJob.commandLine.contains(.flag("-emit-private-module-interface-path")))
@@ -2801,10 +2801,10 @@ final class SwiftDriverTests: XCTestCase {
28012801

28022802
// package-name is not passed, so package interface should not be generated.
28032803
do {
2804-
var driver = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-module-name", "foo",
2804+
var driver = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-module-name", "foo", "-library-level", "api",
28052805
"-emit-module-interface", "-enable-library-evolution"], env: envVars)
28062806
let plannedJobs = try driver.planBuild()
2807-
XCTAssertEqual(plannedJobs.count, 2)
2807+
XCTAssertEqual(plannedJobs.count, 3)
28082808
let emitInterfaceJob = plannedJobs[0]
28092809
XCTAssertTrue(emitInterfaceJob.commandLine.contains(.flag("-emit-module-interface-path")))
28102810
XCTAssertTrue(emitInterfaceJob.commandLine.contains(.flag("-emit-private-module-interface-path")))
@@ -2814,11 +2814,11 @@ final class SwiftDriverTests: XCTestCase {
28142814
// package-name is not passed, so specifying emit-package-module-interface-path should be a no-op.
28152815
do {
28162816
var driver = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-module-name", "foo",
2817-
"-emit-module-interface",
2817+
"-emit-module-interface", "-library-level", "api",
28182818
"-emit-package-module-interface-path", "foo.package.swiftinterface",
28192819
"-enable-library-evolution"], env: envVars)
28202820
let plannedJobs = try driver.planBuild()
2821-
XCTAssertEqual(plannedJobs.count, 2)
2821+
XCTAssertEqual(plannedJobs.count, 3)
28222822
let emitInterfaceJob = plannedJobs[0]
28232823
XCTAssertTrue(emitInterfaceJob.commandLine.contains(.flag("-emit-module-interface-path")))
28242824
XCTAssertTrue(emitInterfaceJob.commandLine.contains(.flag("-emit-private-module-interface-path")))

0 commit comments

Comments
 (0)