Skip to content

Commit b149a1c

Browse files
committed
Add subsetDescriptor to completion message
If we build just a specific product or target, add a `subsetDescriptor` to the complete message. This improves the confusing output when plugins are using executables, because we end up with multiple 'Build complete' messages.
1 parent b368b96 commit b149a1c

File tree

2 files changed

+24
-3
lines changed

2 files changed

+24
-3
lines changed

Sources/Build/BuildOperation.swift

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,21 @@ public final class BuildOperation: PackageStructureDelegate, SPMBuildCore.BuildS
286286

287287
let duration = buildStartTime.distance(to: .now())
288288

289-
self.buildSystemDelegate?.buildComplete(success: success, duration: duration)
289+
let subsetDescriptor: String?
290+
switch subset {
291+
case .product(let productName):
292+
subsetDescriptor = "product '\(productName)'"
293+
case .target(let targetName):
294+
subsetDescriptor = "target: '\(targetName)'"
295+
case .allExcludingTests, .allIncludingTests:
296+
subsetDescriptor = nil
297+
}
298+
299+
self.buildSystemDelegate?.buildComplete(
300+
success: success,
301+
duration: duration,
302+
subsetDescriptor: subsetDescriptor
303+
)
290304
self.delegate?.buildSystem(self, didFinishWithResult: success)
291305
guard success else { throw Diagnostics.fatalError }
292306

Sources/Build/BuildOperationBuildSystemDelegateHandler.swift

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -956,11 +956,18 @@ final class BuildOperationBuildSystemDelegateHandler: LLBuildBuildSystemDelegate
956956
}
957957
}
958958

959-
func buildComplete(success: Bool, duration: DispatchTimeInterval) {
959+
func buildComplete(success: Bool, duration: DispatchTimeInterval, subsetDescriptor: String? = nil) {
960+
let subsetString: String
961+
if let subsetDescriptor {
962+
subsetString = "of \(subsetDescriptor) "
963+
} else {
964+
subsetString = ""
965+
}
966+
960967
queue.sync {
961968
self.progressAnimation.complete(success: success)
962969
if success {
963-
let message = cancelled ? "Build cancelled!" : "Build complete!"
970+
let message = cancelled ? "Build \(subsetString)cancelled!" : "Build \(subsetString)complete!"
964971
self.progressAnimation.clear()
965972
self.outputStream.send("\(message) (\(duration.descriptionInSeconds))\n")
966973
self.outputStream.flush()

0 commit comments

Comments
 (0)