Remove outputFiles from ModuleBase.
Bug: 358425833
Test: CI
Change-Id: I6c398fbdbc38b99fa62f8670baa44ffd51b5e6d3
diff --git a/android/module.go b/android/module.go
index 95908f8..e74af83 100644
--- a/android/module.go
+++ b/android/module.go
@@ -875,10 +875,6 @@
// 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 @@
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 @@
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 5146782..e9fbb8c 100644
--- a/android/module_context.go
+++ b/android/module_context.go
@@ -216,6 +216,8 @@
// 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 @@
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) 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 829c079..92041ec 100644
--- a/android/module_test.go
+++ b/android/module_test.go
@@ -993,6 +993,10 @@
func (p *pathContextAddMissingDependenciesWrapper) Module() Module { return nil }
+func (p *pathContextAddMissingDependenciesWrapper) GetOutputFiles() OutputFilesInfo {
+ return OutputFilesInfo{}
+}
+
func TestOutputFileForModule(t *testing.T) {
testcases := []struct {
name string