aboutsummaryrefslogtreecommitdiff
path: root/android/apex_contributions.go
diff options
context:
space:
mode:
Diffstat (limited to 'android/apex_contributions.go')
-rw-r--r--android/apex_contributions.go32
1 files changed, 20 insertions, 12 deletions
diff --git a/android/apex_contributions.go b/android/apex_contributions.go
index fe7a8352e..72de5b81a 100644
--- a/android/apex_contributions.go
+++ b/android/apex_contributions.go
@@ -29,6 +29,14 @@ func RegisterApexContributionsBuildComponents(ctx RegistrationContext) {
ctx.RegisterModuleType("all_apex_contributions", allApexContributionsFactory)
}
+type apexContributionsInfo struct {
+ Name string
+ Contents []string
+ ApiDomain string
+}
+
+var apexContributionsInfoProvider = blueprint.NewMutatorProvider[apexContributionsInfo]("prebuilt_select")
+
type apexContributions struct {
ModuleBase
DefaultableModuleBase
@@ -44,12 +52,12 @@ type contributionProps struct {
Contents []string
}
-func (m *apexContributions) ApiDomain() string {
- return proptools.String(m.properties.Api_domain)
-}
-
-func (m *apexContributions) Contents() []string {
- return m.properties.Contents
+func (m *apexContributions) setApexContributionsInfoProvider(ctx BottomUpMutatorContext) {
+ SetProvider(ctx, apexContributionsInfoProvider, apexContributionsInfo{
+ Name: m.Name(),
+ Contents: m.properties.Contents,
+ ApiDomain: proptools.String(m.properties.Api_domain),
+ })
}
// apex_contributions contains a list of module names (source or
@@ -106,18 +114,18 @@ var (
// Set PrebuiltSelectionInfoProvider in post deps phase
func (a *allApexContributions) SetPrebuiltSelectionInfoProvider(ctx BottomUpMutatorContext) {
- addContentsToProvider := func(p *PrebuiltSelectionInfoMap, m *apexContributions) {
- for _, content := range m.Contents() {
+ addContentsToProvider := func(p *PrebuiltSelectionInfoMap, m apexContributionsInfo) {
+ for _, content := range m.Contents {
// Verify that the module listed in contents exists in the tree
// Remove the prebuilt_ prefix to account for partner worksapces where the source module does not
// exist, and PrebuiltRenameMutator renames `prebuilt_foo` to `foo`
if !ctx.OtherModuleExists(content) && !ctx.OtherModuleExists(RemoveOptionalPrebuiltPrefix(content)) && !ctx.Config().AllowMissingDependencies() {
- ctx.ModuleErrorf("%s listed in apex_contributions %s does not exist\n", content, m.Name())
+ ctx.ModuleErrorf("%s listed in apex_contributions %s does not exist\n", content, m.Name)
}
pi := &PrebuiltSelectionInfo{
selectedModuleName: content,
- metadataModuleName: m.Name(),
- apiDomain: m.ApiDomain(),
+ metadataModuleName: m.Name,
+ apiDomain: m.ApiDomain,
}
p.Add(ctx, pi)
}
@@ -134,7 +142,7 @@ func (a *allApexContributions) SetPrebuiltSelectionInfoProvider(ctx BottomUpMuta
if child == nil {
continue
}
- if m, ok := child.(*apexContributions); ok {
+ if m, ok := OtherModuleProvider(ctx, child, apexContributionsInfoProvider); ok {
addContentsToProvider(&p, m)
} else {
ctx.ModuleErrorf("%s is not an apex_contributions module\n", child.Name())