summaryrefslogtreecommitdiff
path: root/android/override_module.go
diff options
context:
space:
mode:
Diffstat (limited to 'android/override_module.go')
-rw-r--r--android/override_module.go16
1 files changed, 15 insertions, 1 deletions
diff --git a/android/override_module.go b/android/override_module.go
index 9f5127dc3..7e58890d7 100644
--- a/android/override_module.go
+++ b/android/override_module.go
@@ -208,7 +208,21 @@ var overrideBaseDepTag overrideBaseDependencyTag
// next phase.
func overrideModuleDepsMutator(ctx BottomUpMutatorContext) {
if module, ok := ctx.Module().(OverrideModule); ok {
- ctx.AddDependency(ctx.Module(), overrideBaseDepTag, *module.getOverrideModuleProperties().Base)
+ // Skip this overriding module if there's a prebuilt module that overrides it with prefer flag.
+ overriddenByPrebuilt := false
+ ctx.VisitDirectDepsWithTag(PrebuiltDepTag, func(dep Module) {
+ prebuilt, ok := dep.(PrebuiltInterface)
+ if !ok {
+ panic("PrebuiltDepTag leads to a non-prebuilt module " + dep.Name())
+ }
+ if prebuilt.Prebuilt().UsePrebuilt() {
+ overriddenByPrebuilt = true
+ return
+ }
+ })
+ if !overriddenByPrebuilt {
+ ctx.AddDependency(ctx.Module(), overrideBaseDepTag, *module.getOverrideModuleProperties().Base)
+ }
}
}