Skip to content

Commit f646d37

Browse files
authored
rdar://164182636 Pass back PRODUCT_MODULE_NAME to previews as target dependency info (#895)
1 parent 78c9bd5 commit f646d37

File tree

7 files changed

+16
-0
lines changed

7 files changed

+16
-0
lines changed

Sources/SWBBuildService/Messages.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1092,6 +1092,7 @@ private extension PreviewInfoOutput {
10921092
case let .targetDependencyInfo(info):
10931093
kind = .targetDependencyInfo(
10941094
PreviewInfoTargetDependencyInfo(
1095+
productModuleName: info.productModuleName,
10951096
objectFileInputMap: info.objectFileInputMap,
10961097
linkCommandLine: info.linkCommandLine,
10971098
linkerWorkingDirectory: info.linkerWorkingDirectory,

Sources/SWBBuildService/PreviewInfo.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ package struct PreviewInfoOutput: Sendable {
5050
}
5151

5252
package struct TargetDependencyInfo: Sendable {
53+
package let productModuleName: String
5354
package let objectFileInputMap: [String: Set<String>]
5455
package let linkCommandLine: [String]
5556
package let linkerWorkingDirectory: String?
@@ -265,6 +266,7 @@ extension BuildDescription {
265266
case .targetDependencyInfo:
266267
let swiftInfos = Dictionary(grouping: relevantPreviewInfos.filter({ $0.type == .Swift }), by: { $0.output.str }).mapValues { Set($0.map { $0.input.str }) }
267268
let targetInfo = PreviewInfoOutput.TargetDependencyInfo(
269+
productModuleName: settings.globalScope.evaluate(BuiltinMacros.PRODUCT_MODULE_NAME),
268270
objectFileInputMap: swiftInfos,
269271
linkCommandLine: linkInfo?.commandLine ?? [],
270272
linkerWorkingDirectory: linkInfo?.workingDirectory.str,

Sources/SWBProtocol/MessageSupport.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,7 @@ public struct PreviewInfoThunkInfo: Codable, Equatable, Sendable {
443443
}
444444

445445
public struct PreviewInfoTargetDependencyInfo: Codable, Equatable, Sendable {
446+
public let productModuleName: String
446447
public let objectFileInputMap: [String: Set<String>]
447448
public let linkCommandLine: [String]
448449
public let linkerWorkingDirectory: String?
@@ -455,6 +456,7 @@ public struct PreviewInfoTargetDependencyInfo: Codable, Equatable, Sendable {
455456
public let enableUndefinedBehaviorSanitizer: Bool
456457

457458
public init(
459+
productModuleName: String,
458460
objectFileInputMap: [String : Set<String>],
459461
linkCommandLine: [String],
460462
linkerWorkingDirectory: String?,
@@ -466,6 +468,7 @@ public struct PreviewInfoTargetDependencyInfo: Codable, Equatable, Sendable {
466468
enableThreadSanitizer: Bool,
467469
enableUndefinedBehaviorSanitizer: Bool
468470
) {
471+
self.productModuleName = productModuleName
469472
self.objectFileInputMap = objectFileInputMap
470473
self.linkCommandLine = linkCommandLine
471474
self.linkerWorkingDirectory = linkerWorkingDirectory

Sources/SwiftBuild/SWBBuildServiceSession.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -990,6 +990,7 @@ fileprivate extension SWBPreviewTargetDependencyInfo {
990990
case .thunkInfo:
991991
throw StubError.error("Unexpected response type for request")
992992
case let .targetDependencyInfo(targetDependencyInfo):
993+
self.productModuleName = targetDependencyInfo.productModuleName
993994
self.objectFileInputMap = targetDependencyInfo.objectFileInputMap
994995
self.linkCommandLine = targetDependencyInfo.linkCommandLine
995996
self.linkerWorkingDirectory = targetDependencyInfo.linkerWorkingDirectory

Sources/SwiftBuild/SWBPreviewSupport.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ public struct SWBPreviewTargetDependencyInfo: SWBPreviewInfoContext, Hashable, S
6060

6161
public let pifGUID: String
6262

63+
public let productModuleName: String
64+
6365
/// Mapping of object files to the source file inputs they came from.
6466
public let objectFileInputMap: [String: Set<String>]
6567

@@ -110,6 +112,7 @@ public struct SWBPreviewTargetDependencyInfo: SWBPreviewInfoContext, Hashable, S
110112
buildVariant: String,
111113
architecture: String,
112114
pifGUID: String,
115+
productModuleName: String,
113116
objectFileInputMap: [String : Set<String>],
114117
linkCommandLine: [String],
115118
linkerWorkingDirectory: String?,
@@ -126,6 +129,7 @@ public struct SWBPreviewTargetDependencyInfo: SWBPreviewInfoContext, Hashable, S
126129
self.buildVariant = buildVariant
127130
self.architecture = architecture
128131
self.pifGUID = pifGUID
132+
self.productModuleName = productModuleName
129133
self.objectFileInputMap = objectFileInputMap
130134
self.linkCommandLine = linkCommandLine
131135
self.linkerWorkingDirectory = linkerWorkingDirectory

Tests/SWBBuildSystemTests/PreviewsBuildOperationTests.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,7 @@ fileprivate struct PreviewsBuildOperationTests: CoreBasedTests {
299299
#expect(targetPreviewInfo.context.sdkRoot == core.loadSDK(.iOSSimulator).name)
300300
#expect(targetPreviewInfo.context.sdkVariant == "iphonesimulator")
301301

302+
#expect(targetPreviewInfo.targetDependencyInfo?.productModuleName == "AppTarget")
302303
#expect(targetPreviewInfo.targetDependencyInfo?.objectFileInputMap == [
303304
"\(srcRoot.str)/build/ProjectName.build/Debug-iphonesimulator/AppTarget.build/Objects-normal/\(results.runDestinationTargetArchitecture)/main.o": Set(["\(srcRoot.str)/Sources/main.swift"])
304305
])
@@ -603,6 +604,7 @@ fileprivate struct PreviewsBuildOperationTests: CoreBasedTests {
603604
#expect(targetPreviewInfo.context.sdkRoot == core.loadSDK(.iOSSimulator).name)
604605
#expect(targetPreviewInfo.context.sdkVariant == "iphonesimulator")
605606

607+
#expect(targetPreviewInfo.targetDependencyInfo?.productModuleName == "AppTarget")
606608
#expect(targetPreviewInfo.targetDependencyInfo?.objectFileInputMap == [
607609
"\(srcRoot.str)/build/ProjectName.build/Debug-iphonesimulator/AppTarget.build/Objects-normal/\(results.runDestinationTargetArchitecture)/main.o": Set(["\(srcRoot.str)/Sources/main.swift"]),
608610
"\(srcRoot.str)/build/ProjectName.build/Debug-iphonesimulator/AppTarget.build/Objects-normal/\(results.runDestinationTargetArchitecture)/File1.o": Set(["\(srcRoot.str)/Sources/File1.swift"]),

Tests/SwiftBuildTests/GeneratePreviewInfoTests.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ fileprivate struct GeneratePreviewInfoTests: CoreBasedTests {
206206
buildVariant: "normal",
207207
architecture: activeRunDestination.targetArchitecture,
208208
pifGUID: appTarget.guid,
209+
productModuleName: "App",
209210
objectFileInputMap: [
210211
"\(tmpDir.str)/Test/build/Test.build/Debug-iphoneos/App.build/Objects-normal/\(activeRunDestination.targetArchitecture)/TestFile4.o": Set(["\(tmpDir.str)/Test/TestFile4.swift"]),
211212
"\(tmpDir.str)/Test/build/Test.build/Debug-iphoneos/App.build/Objects-normal/\(activeRunDestination.targetArchitecture)/GeneratedAssetSymbols.o": Set(["\(tmpDir.str)/Test/build/Test.build/Debug-iphoneos/App.build/DerivedSources/GeneratedAssetSymbols.swift"])
@@ -381,6 +382,7 @@ fileprivate struct GeneratePreviewInfoTests: CoreBasedTests {
381382
buildVariant: "normal",
382383
architecture: activeRunDestination.targetArchitecture,
383384
pifGUID: libTarget.guid,
385+
productModuleName: "StaticLib",
384386
objectFileInputMap: [
385387
"\(tmpDir.str)/Test/build/Test.build/Debug-iphoneos/StaticLib.build/Objects-normal/arm64/TestFile4.o": Set(["\(tmpDir.str)/Test/TestFile4.swift"])
386388
],
@@ -505,6 +507,7 @@ fileprivate struct GeneratePreviewInfoTests: CoreBasedTests {
505507
buildVariant: "normal",
506508
architecture: activeRunDestination.targetArchitecture,
507509
pifGUID: target.guid,
510+
productModuleName: "CApplication",
508511
objectFileInputMap: [:],
509512
linkCommandLine: [
510513
"\(developerDir)/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang",

0 commit comments

Comments
 (0)