diff options
Diffstat (limited to 'apex/prebuilt.go')
| -rw-r--r-- | apex/prebuilt.go | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/apex/prebuilt.go b/apex/prebuilt.go index ea06d45cb..1bb0fb582 100644 --- a/apex/prebuilt.go +++ b/apex/prebuilt.go @@ -24,7 +24,6 @@ import ( "android/soong/java" "github.com/google/blueprint" - "github.com/google/blueprint/proptools" ) @@ -76,6 +75,10 @@ type sanitizedPrebuilt interface { type PrebuiltCommonProperties struct { SelectedApexProperties + // Canonical name of this APEX. Used to determine the path to the activated APEX on + // device (/apex/<apex_name>). If unspecified, follows the name property. + Apex_name *string + ForceDisable bool `blueprint:"mutated"` // whether the extracted apex file is installable. @@ -110,6 +113,10 @@ func (p *prebuiltCommon) initPrebuiltCommon(module android.Module, properties *P android.InitAndroidMultiTargetsArchModule(module, android.DeviceSupported, android.MultilibCommon) } +func (p *prebuiltCommon) ApexVariationName() string { + return proptools.StringDefault(p.prebuiltCommonProperties.Apex_name, p.ModuleBase.BaseModuleName()) +} + func (p *prebuiltCommon) Prebuilt() *android.Prebuilt { return &p.prebuilt } @@ -369,6 +376,12 @@ func (p *prebuiltCommon) apexInfoMutator(mctx android.TopDownMutatorContext) { } } + // Ignore any modules that do not implement ApexModule as they cannot have an APEX specific + // variant. + if _, ok := child.(android.ApexModule); !ok { + return false + } + // Strip off the prebuilt_ prefix if present before storing content to ensure consistent // behavior whether there is a corresponding source module present or not. depName = android.RemoveOptionalPrebuiltPrefix(depName) @@ -390,11 +403,11 @@ func (p *prebuiltCommon) apexInfoMutator(mctx android.TopDownMutatorContext) { }) // Create an ApexInfo for the prebuilt_apex. - apexVariationName := android.RemoveOptionalPrebuiltPrefix(mctx.ModuleName()) + apexVariationName := p.ApexVariationName() apexInfo := android.ApexInfo{ ApexVariationName: apexVariationName, InApexVariants: []string{apexVariationName}, - InApexModules: []string{apexVariationName}, + InApexModules: []string{p.ModuleBase.BaseModuleName()}, // BaseModuleName() to avoid the prebuilt_ prefix. ApexContents: []*android.ApexContents{apexContents}, ForPrebuiltApex: true, } |