Fixed the issue of dependencyTag in prebuilt.go
Directly using blueprint.BaseDependencyTag might cause issues because
if other modules also use blueprint.BaseDependencyTag, the
different type of modules will be mixed when fetched based on Tag.
Test: m -j out/soong/build.ninja
Change-Id: I290ca2eea063e5daa4f572985b105b958fa1d0fd
diff --git a/android/prebuilt.go b/android/prebuilt.go
index 5f9b4b0..006b66f 100644
--- a/android/prebuilt.go
+++ b/android/prebuilt.go
@@ -19,7 +19,11 @@
// This file implements common functionality for handling modules that may exist as prebuilts,
// source, or both.
-var prebuiltDependencyTag blueprint.BaseDependencyTag
+type prebuiltDependencyTag struct {
+ blueprint.BaseDependencyTag
+}
+
+var prebuiltDepTag prebuiltDependencyTag
type Prebuilt struct {
Properties struct {
@@ -64,7 +68,7 @@
p := m.Prebuilt()
name := m.base().BaseModuleName()
if ctx.OtherModuleExists(name) {
- ctx.AddReverseDependency(ctx.Module(), prebuiltDependencyTag, name)
+ ctx.AddReverseDependency(ctx.Module(), prebuiltDepTag, name)
p.Properties.SourceExists = true
} else {
ctx.Rename(name)
@@ -77,7 +81,7 @@
func PrebuiltSelectModuleMutator(ctx TopDownMutatorContext) {
if s, ok := ctx.Module().(Module); ok {
ctx.VisitDirectDeps(func(m blueprint.Module) {
- if ctx.OtherModuleDependencyTag(m) == prebuiltDependencyTag {
+ if ctx.OtherModuleDependencyTag(m) == prebuiltDepTag {
p := m.(PrebuiltInterface).Prebuilt()
if p.usePrebuilt(ctx, s) {
p.Properties.UsePrebuilt = true