From 876b7ce263e6085bb46fbdaaaf4d0ac67c5e5f34 Mon Sep 17 00:00:00 2001 From: Yu Liu Date: Wed, 21 Aug 2024 18:20:13 +0000 Subject: [PATCH] Remove outputFiles from ModuleBase. Bug: 358425833 Test: CI Change-Id: I6c398fbdbc38b99fa62f8670baa44ffd51b5e6d3 --- android/module.go | 12 +++++------- android/module_context.go | 21 +++++++++++++++------ android/module_test.go | 4 ++++ 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/android/module.go b/android/module.go index 95908f842..e74af838e 100644 --- a/android/module.go +++ b/android/module.go @@ -875,10 +875,6 @@ type ModuleBase struct { // be included in the final module-info.json produced by Make. moduleInfoJSON *ModuleInfoJSON - // outputFiles stores the output of a module by tag and is used to set - // the OutputFilesProvider in GenerateBuildActions - outputFiles OutputFilesInfo - // complianceMetadataInfo is for different module types to dump metadata. // See android.ModuleContext interface. complianceMetadataInfo *ComplianceMetadataInfo @@ -2057,8 +2053,9 @@ func (m *ModuleBase) GenerateBuildActions(blueprintCtx blueprint.ModuleContext) m.ruleParams = ctx.ruleParams m.variables = ctx.variables - if m.outputFiles.DefaultOutputFiles != nil || m.outputFiles.TaggedOutputFiles != nil { - SetProvider(ctx, OutputFilesProvider, m.outputFiles) + outputFiles := ctx.GetOutputFiles() + if outputFiles.DefaultOutputFiles != nil || outputFiles.TaggedOutputFiles != nil { + SetProvider(ctx, OutputFilesProvider, outputFiles) } if len(ctx.phonies) > 0 { @@ -2557,13 +2554,14 @@ func outputFilesForModuleFromProvider(ctx PathContext, module blueprint.Module, type OutputFilesProviderModuleContext interface { OtherModuleProviderContext Module() Module + GetOutputFiles() OutputFilesInfo } if mctx, isMctx := ctx.(OutputFilesProviderModuleContext); isMctx { if mctx.Module() != module { outputFiles, _ = OtherModuleProvider(mctx, module, OutputFilesProvider) } else { - outputFiles = mctx.Module().base().outputFiles + outputFiles = mctx.GetOutputFiles() fromProperty = true } } else if cta, isCta := ctx.(*singletonContextAdaptor); isCta { diff --git a/android/module_context.go b/android/module_context.go index 514678222..e9fbb8c36 100644 --- a/android/module_context.go +++ b/android/module_context.go @@ -216,6 +216,8 @@ type ModuleContext interface { // to set the OutputFilesProvider later. SetOutputFiles(outputFiles Paths, tag string) + GetOutputFiles() OutputFilesInfo + // ComplianceMetadataInfo returns a ComplianceMetadataInfo instance for different module types to dump metadata, // which usually happens in GenerateAndroidBuildActions() of a module type. // See android.ModuleBase.complianceMetadataInfo @@ -230,6 +232,9 @@ type moduleContext struct { checkbuildFiles Paths module Module phonies map[string]Paths + // outputFiles stores the output of a module by tag and is used to set + // the OutputFilesProvider in GenerateBuildActions + outputFiles OutputFilesInfo katiInstalls katiInstalls katiSymlinks katiInstalls @@ -713,22 +718,26 @@ func (m *moduleContext) ModuleInfoJSON() *ModuleInfoJSON { func (m *moduleContext) SetOutputFiles(outputFiles Paths, tag string) { if tag == "" { - if len(m.module.base().outputFiles.DefaultOutputFiles) > 0 { + if len(m.outputFiles.DefaultOutputFiles) > 0 { m.ModuleErrorf("Module %s default OutputFiles cannot be overwritten", m.ModuleName()) } - m.module.base().outputFiles.DefaultOutputFiles = outputFiles + m.outputFiles.DefaultOutputFiles = outputFiles } else { - if m.module.base().outputFiles.TaggedOutputFiles == nil { - m.module.base().outputFiles.TaggedOutputFiles = make(map[string]Paths) + if m.outputFiles.TaggedOutputFiles == nil { + m.outputFiles.TaggedOutputFiles = make(map[string]Paths) } - if _, exists := m.module.base().outputFiles.TaggedOutputFiles[tag]; exists { + if _, exists := m.outputFiles.TaggedOutputFiles[tag]; exists { m.ModuleErrorf("Module %s OutputFiles at tag %s cannot be overwritten", m.ModuleName(), tag) } else { - m.module.base().outputFiles.TaggedOutputFiles[tag] = outputFiles + m.outputFiles.TaggedOutputFiles[tag] = outputFiles } } } +func (m *moduleContext) GetOutputFiles() OutputFilesInfo { + return m.outputFiles +} + func (m *moduleContext) ComplianceMetadataInfo() *ComplianceMetadataInfo { if complianceMetadataInfo := m.module.base().complianceMetadataInfo; complianceMetadataInfo != nil { return complianceMetadataInfo diff --git a/android/module_test.go b/android/module_test.go index 829c07987..92041ec90 100644 --- a/android/module_test.go +++ b/android/module_test.go @@ -993,6 +993,10 @@ func (p *pathContextAddMissingDependenciesWrapper) OtherModuleName(module bluepr func (p *pathContextAddMissingDependenciesWrapper) Module() Module { return nil } +func (p *pathContextAddMissingDependenciesWrapper) GetOutputFiles() OutputFilesInfo { + return OutputFilesInfo{} +} + func TestOutputFileForModule(t *testing.T) { testcases := []struct { name string