Revert "Remove `prebuilt_apex_module_creator` mutator"
This reverts commit 309a612c9f602c9021989c607a91917194d18e77.
Reason for revert: DroidMonitor created revert due to b/369260559.
Change-Id: I1d5c7b8fa8847f5a8dfd510456e8fd9fb2754511
diff --git a/apex/apex.go b/apex/apex.go
index 9e9b9f2..9e3f288 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -49,10 +49,15 @@
ctx.RegisterModuleType("override_apex", OverrideApexFactory)
ctx.RegisterModuleType("apex_set", apexSetFactory)
+ ctx.PreArchMutators(registerPreArchMutators)
ctx.PreDepsMutators(RegisterPreDepsMutators)
ctx.PostDepsMutators(RegisterPostDepsMutators)
}
+func registerPreArchMutators(ctx android.RegisterMutatorsContext) {
+ ctx.BottomUp("prebuilt_apex_module_creator", prebuiltApexModuleCreatorMutator).Parallel()
+}
+
func RegisterPreDepsMutators(ctx android.RegisterMutatorsContext) {
ctx.BottomUp("apex_vndk_deps", apexVndkDepsMutator).Parallel()
}
diff --git a/apex/prebuilt.go b/apex/prebuilt.go
index 9cd5688..d3f14f9 100644
--- a/apex/prebuilt.go
+++ b/apex/prebuilt.go
@@ -253,6 +253,28 @@
return entriesList
}
+// DEPRECATED. // TODO (spandandas): Remove this interface.
+
+// prebuiltApexModuleCreator defines the methods that need to be implemented by prebuilt_apex and
+// apex_set in order to create the modules needed to provide access to the prebuilt .apex file.
+type prebuiltApexModuleCreator interface {
+ createPrebuiltApexModules(ctx android.BottomUpMutatorContext)
+}
+
+// prebuiltApexModuleCreatorMutator is the mutator responsible for invoking the
+// prebuiltApexModuleCreator's createPrebuiltApexModules method.
+//
+// It is registered as a pre-arch mutator as it must run after the ComponentDepsMutator because it
+// will need to access dependencies added by that (exported modules) but must run before the
+// DepsMutator so that the deapexer module it creates can add dependencies onto itself from the
+// exported modules.
+func prebuiltApexModuleCreatorMutator(ctx android.BottomUpMutatorContext) {
+ module := ctx.Module()
+ if creator, ok := module.(prebuiltApexModuleCreator); ok {
+ creator.createPrebuiltApexModules(ctx)
+ }
+}
+
func (p *prebuiltCommon) hasExportedDeps() bool {
return len(p.prebuiltCommonProperties.Exported_bootclasspath_fragments) > 0 ||
len(p.prebuiltCommonProperties.Exported_systemserverclasspath_fragments) > 0