Convert the following singletons to use ModuleProxy:
buildTargetSingleton
exportedJavaDeclarationsLibrarySingleton
javaFuzzPackager
kytheExtractAllSingleton
kytheExtractJavaSingleton
kytheExtractRustSingleton
lintSingleton
logtagsSingleton
makeVarsSingleton
ndkAbiDiffSingleton
ndkAbiDumpSingleton
phonySingleton
platformCompatConfigSingleton
sdkSingleton
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I625ac8a209ca93755b2ba232202cfb44ecefde0a
diff --git a/android/module.go b/android/module.go
index 996c64e..984f037 100644
--- a/android/module.go
+++ b/android/module.go
@@ -1939,6 +1939,7 @@
TargetRequiredModuleNames []string
VintfFragmentModuleNames []string
Dists []Dist
+ ExportedToMake bool
}
type ApiLevelOrPlatform struct {
@@ -2298,6 +2299,7 @@
TargetRequiredModuleNames: m.module.TargetRequiredModuleNames(),
VintfFragmentModuleNames: m.module.VintfFragmentModuleNames(ctx),
Dists: m.Dists(),
+ ExportedToMake: m.ExportedToMake(),
}
if mm, ok := m.module.(interface {
MinSdkVersion(ctx EarlyModuleContext) ApiLevel
@@ -2368,6 +2370,10 @@
GeneratedDeps: s.GeneratedDeps(),
})
}
+
+ if v, ok := m.module.(ModuleMakeVarsProvider); m.Enabled(ctx) && ok {
+ SetProvider(ctx, ModuleMakeVarsInfoProvider, v.MakeVars(ctx))
+ }
}
func SetJarJarPrefixHandler(handler func(ModuleContext)) {
@@ -2884,6 +2890,8 @@
// OutputFileForModule returns the output file paths with the given tag. On error, including if the
// module produced zero or multiple paths, it reports errors to the ctx and returns nil.
+// TODO(b/397766191): Change the signature to take ModuleProxy
+// Please only access the module's internal data through providers.
func OutputFileForModule(ctx PathContext, module Module, tag string) Path {
paths, err := outputFilesForModule(ctx, module, tag)
if err != nil {
@@ -2924,6 +2932,8 @@
EqualModules(m1, m2 Module) bool
}
+// TODO(b/397766191): Change the signature to take ModuleProxy
+// Please only access the module's internal data through providers.
func outputFilesForModule(ctx PathContext, module Module, tag string) (Paths, error) {
outputFilesFromProvider, err := outputFilesForModuleFromProvider(ctx, module, tag)
if outputFilesFromProvider != nil || err != OutputFilesProviderNotSet {
@@ -3069,7 +3079,7 @@
modulesInDir := make(map[string]Paths)
- ctx.VisitAllModules(func(module Module) {
+ ctx.VisitAllModuleProxies(func(module ModuleProxy) {
info := OtherModuleProviderOrDefault(ctx, module, FinalModuleBuildTargetsProvider)
if info.CheckbuildTarget != nil {