Skip to content

Commit 65486a7

Browse files
Dependencies: include moduleDependenciesContext in the Swift compilation requirements signature
1 parent 3890fa2 commit 65486a7

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2381,8 +2381,25 @@ public final class SwiftCompilerSpec : CompilerSpec, SpecIdentifierType, SwiftDi
23812381
dependencyData = nil
23822382
}
23832383

2384+
let compilationRequirementAdditionalSignatureData: String
2385+
if let moduleDependenciesContext = cbc.producer.moduleDependenciesContext {
2386+
do {
2387+
let jsonData = try JSONEncoder(outputFormatting: [.prettyPrinted, .sortedKeys, .withoutEscapingSlashes]).encode(moduleDependenciesContext)
2388+
guard let signature = String(data: jsonData, encoding: .utf8) else {
2389+
throw StubError.error("non-UTF-8 data")
2390+
}
2391+
compilationRequirementAdditionalSignatureData = additionalSignatureData + "|\(signature)"
2392+
} catch {
2393+
delegate.error("failed to serialize 'MODULE_DEPENDENCIES' context information: \(error)")
2394+
return
2395+
}
2396+
}
2397+
else {
2398+
compilationRequirementAdditionalSignatureData = additionalSignatureData
2399+
}
2400+
23842401
// Compilation Requirements
2385-
delegate.createTask(type: self, dependencyData: dependencyData, payload: payload, ruleInfo: ruleInfo("SwiftDriver Compilation Requirements", targetName), additionalSignatureData: additionalSignatureData, commandLine: ["builtin-Swift-Compilation-Requirements", "--"] + args, environment: environmentBindings, workingDirectory: compilerWorkingDirectory(cbc), inputs: allInputsNodes, outputs: compilationRequirementOutputs, action: delegate.taskActionCreationDelegate.createSwiftCompilationRequirementTaskAction(), execDescription: archSpecificExecutionDescription(cbc.scope.namespace.parseString("Unblock downstream dependents of $PRODUCT_NAME"), cbc, delegate), preparesForIndexing: true, enableSandboxing: enableSandboxing, additionalTaskOrderingOptions: [.compilation, .compilationRequirement, .linkingRequirement, .blockedByTargetHeaders, .compilationForIndexableSourceFile], usesExecutionInputs: true, showInLog: true)
2402+
delegate.createTask(type: self, dependencyData: dependencyData, payload: payload, ruleInfo: ruleInfo("SwiftDriver Compilation Requirements", targetName), additionalSignatureData: compilationRequirementAdditionalSignatureData, commandLine: ["builtin-Swift-Compilation-Requirements", "--"] + args, environment: environmentBindings, workingDirectory: compilerWorkingDirectory(cbc), inputs: allInputsNodes, outputs: compilationRequirementOutputs, action: delegate.taskActionCreationDelegate.createSwiftCompilationRequirementTaskAction(), execDescription: archSpecificExecutionDescription(cbc.scope.namespace.parseString("Unblock downstream dependents of $PRODUCT_NAME"), cbc, delegate), preparesForIndexing: true, enableSandboxing: enableSandboxing, additionalTaskOrderingOptions: [.compilation, .compilationRequirement, .linkingRequirement, .blockedByTargetHeaders, .compilationForIndexableSourceFile], usesExecutionInputs: true, showInLog: true)
23862403

23872404
if case .compile = compilationMode {
23882405
// Unblocking compilation

0 commit comments

Comments
 (0)