diff options
| -rw-r--r-- | apex/apex.go | 10 | ||||
| -rw-r--r-- | apex/apex_test.go | 35 |
2 files changed, 43 insertions, 2 deletions
diff --git a/apex/apex.go b/apex/apex.go index d0c1a09d5..b29017d1f 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -1750,9 +1750,15 @@ func (a *apexBundle) WalkPayloadDeps(ctx android.ModuleContext, do android.Paylo return false } + dt := ctx.OtherModuleDependencyTag(child) + + if _, ok := dt.(android.ExcludeFromApexContentsTag); ok { + return false + } + // Check for the direct dependencies that contribute to the payload - if dt, ok := ctx.OtherModuleDependencyTag(child).(dependencyTag); ok { - if dt.payload { + if adt, ok := dt.(dependencyTag); ok { + if adt.payload { return do(ctx, parent, am, false /* externalDep */) } // As soon as the dependency graph crosses the APEX boundary, don't go further. diff --git a/apex/apex_test.go b/apex/apex_test.go index befb81483..6613ab57a 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -5790,6 +5790,41 @@ func TestAllowedFiles(t *testing.T) { } } +func TestNonPreferredPrebuiltDependency(t *testing.T) { + _, _ = testApex(t, ` + apex { + name: "myapex", + key: "myapex.key", + native_shared_libs: ["mylib"], + } + + apex_key { + name: "myapex.key", + public_key: "testkey.avbpubkey", + private_key: "testkey.pem", + } + + cc_library { + name: "mylib", + srcs: ["mylib.cpp"], + stubs: { + versions: ["10000"], + }, + apex_available: ["myapex"], + } + + cc_prebuilt_library_shared { + name: "mylib", + prefer: false, + srcs: ["prebuilt.so"], + stubs: { + versions: ["10000"], + }, + apex_available: ["myapex"], + } + `) +} + func TestMain(m *testing.M) { run := func() int { setUp() |