diff options
author | Jiyong Park <jiyong@google.com> | 2019-07-07 12:39:16 +0900 |
---|---|---|
committer | Jiyong Park <jiyong@google.com> | 2019-07-07 13:57:10 +0900 |
commit | 0a573d798ffa8941b8028e76d0f6a6951863a6e4 (patch) | |
tree | bdd2b10705305df29b875e00f945975baedebb96 | |
parent | 43377eeb3890dcdbc8d5a391c54c5b6062f9d807 (diff) | |
download | build_soong-0a573d798ffa8941b8028e76d0f6a6951863a6e4.tar.gz build_soong-0a573d798ffa8941b8028e76d0f6a6951863a6e4.tar.bz2 build_soong-0a573d798ffa8941b8028e76d0f6a6951863a6e4.zip |
Don't use prebuilt_apex when TARGET_FLATTEN_APEX is set to true
When the device does not support non-flattened APEX (i.e.
TARGET_FLATTEN_APEX is set to true), then ignore the prebuilt_apex
modules even when `prefer: true`.
Bug: 136251130
Bug: 136662772
Test: build marlin, and check if /system/apex has flattened APEXes
Change-Id: I9f3dfefc3bd357d6750fbb1e418937d095720b04
-rw-r--r-- | android/prebuilt.go | 4 | ||||
-rw-r--r-- | apex/apex.go | 15 |
2 files changed, 18 insertions, 1 deletions
diff --git a/android/prebuilt.go b/android/prebuilt.go index 2556770d..3be10f72 100644 --- a/android/prebuilt.go +++ b/android/prebuilt.go @@ -178,3 +178,7 @@ func (p *Prebuilt) usePrebuilt(ctx TopDownMutatorContext, source Module) bool { return source == nil || !source.Enabled() } + +func (p *Prebuilt) SourceExists() bool { + return p.properties.SourceExists +} diff --git a/apex/apex.go b/apex/apex.go index a546b904..3726684c 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -1297,7 +1297,8 @@ type Prebuilt struct { type PrebuiltProperties struct { // the path to the prebuilt .apex file to import. - Source string `blueprint:"mutated"` + Source string `blueprint:"mutated"` + ForceDisable bool `blueprint:"mutated"` Src *string Arch struct { @@ -1326,6 +1327,14 @@ func (p *Prebuilt) installable() bool { } 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 // 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. @@ -1362,6 +1371,10 @@ func (p *Prebuilt) InstallFilename() string { } func (p *Prebuilt) GenerateAndroidBuildActions(ctx android.ModuleContext) { + if p.properties.ForceDisable { + return + } + // TODO(jungjw): Check the key validity. p.inputApex = p.Prebuilt().SingleSourcePath(ctx) p.installDir = android.PathForModuleInstall(ctx, "apex") |