Disable installing unused prebuilts
If the source module is being used instead of the prebuilt module,
disable installing the prebuilt module.
Test: m -j checkbuild
Change-Id: I55e77021b0f9572b0737d960cba89274f696775d
diff --git a/android/prebuilt.go b/android/prebuilt.go
index fb9e515..7652429 100644
--- a/android/prebuilt.go
+++ b/android/prebuilt.go
@@ -68,6 +68,7 @@
type PrebuiltInterface interface {
Module
Prebuilt() *Prebuilt
+ SkipInstall()
}
type PrebuiltSourceInterface interface {
@@ -89,14 +90,19 @@
}
}
-// PrebuiltReplaceMutator replaces dependencies on the source module with dependencies on the prebuilt
-// when both modules exist and the prebuilt should be used.
+// PrebuiltReplaceMutator replaces dependencies on the source module with dependencies on the
+// prebuilt when both modules exist and the prebuilt should be used. When the prebuilt should not
+// be used, disable installing it.
func PrebuiltReplaceMutator(ctx BottomUpMutatorContext) {
if m, ok := ctx.Module().(PrebuiltInterface); ok && m.Prebuilt() != nil {
p := m.Prebuilt()
name := m.base().BaseModuleName()
- if p.Properties.SourceExists && p.usePrebuilt(ctx) {
- ctx.ReplaceDependencies(name)
+ if p.usePrebuilt(ctx) {
+ if p.Properties.SourceExists {
+ ctx.ReplaceDependencies(name)
+ }
+ } else {
+ m.SkipInstall()
}
}
}