Don't use prebuilt_apex when TARGET_FLATTEN_APEX is set to true

am: 0a573d798f

Change-Id: I67d532961fc4584bc0d7bf3616edb3236fb1acc9
This commit is contained in:
Jiyong Park 2019-07-09 20:15:23 -07:00 committed by android-build-merger
commit a237e62db0
2 changed files with 18 additions and 1 deletions

View File

@ -183,3 +183,7 @@ func (p *Prebuilt) usePrebuilt(ctx TopDownMutatorContext, source Module) bool {
return source == nil || !source.Enabled() return source == nil || !source.Enabled()
} }
func (p *Prebuilt) SourceExists() bool {
return p.properties.SourceExists
}

View File

@ -1405,7 +1405,8 @@ type Prebuilt struct {
type PrebuiltProperties struct { type PrebuiltProperties struct {
// the path to the prebuilt .apex file to import. // the path to the prebuilt .apex file to import.
Source string `blueprint:"mutated"` Source string `blueprint:"mutated"`
ForceDisable bool `blueprint:"mutated"`
Src *string Src *string
Arch struct { Arch struct {
@ -1434,6 +1435,14 @@ func (p *Prebuilt) installable() bool {
} }
func (p *Prebuilt) DepsMutator(ctx android.BottomUpMutatorContext) { func (p *Prebuilt) DepsMutator(ctx android.BottomUpMutatorContext) {
if ctx.Config().FlattenApex() && !ctx.Config().UnbundledBuild() && p.prebuilt.SourceExists() {
// If the device is configured to use flattened APEX, don't set
// p.properties.Source so that the prebuilt module (which is
// a non-flattened APEX) is not used.
p.properties.ForceDisable = true
return
}
// This is called before prebuilt_select and prebuilt_postdeps mutators // This is called before prebuilt_select and prebuilt_postdeps mutators
// The mutators requires that src to be set correctly for each arch so that // The mutators requires that src to be set correctly for each arch so that
// arch variants are disabled when src is not provided for the arch. // arch variants are disabled when src is not provided for the arch.
@ -1475,6 +1484,10 @@ func (p *Prebuilt) InstallFilename() string {
} }
func (p *Prebuilt) GenerateAndroidBuildActions(ctx android.ModuleContext) { func (p *Prebuilt) GenerateAndroidBuildActions(ctx android.ModuleContext) {
if p.properties.ForceDisable {
return
}
// TODO(jungjw): Check the key validity. // TODO(jungjw): Check the key validity.
p.inputApex = p.Prebuilt().SingleSourcePath(ctx) p.inputApex = p.Prebuilt().SingleSourcePath(ctx)
p.installDir = android.PathForModuleInstall(ctx, "apex") p.installDir = android.PathForModuleInstall(ctx, "apex")