Always drop deps from android_library with no srcs

android_library does not accept deps when there are no srcs because
there is no compilation happening. The libs of android_library module
are unnecessary as deps on the android_library since they aren't
being propagated to any dependencies.
So we can drop deps here.

Test: the updated test case and CI

Bug: 302290600

Change-Id: Ib43a1c273a5f3b3e0aa6f29f4e8569ad3487e451
This commit is contained in:
Zi Wang
2023-09-27 12:29:34 -07:00
parent af26c102b8
commit 1066479258
2 changed files with 19 additions and 6 deletions

View File

@@ -1344,10 +1344,12 @@ func (a *AndroidLibrary) ConvertWithBp2build(ctx android.Bp2buildMutatorContext)
if !commonAttrs.Srcs.IsEmpty() {
deps.Append(depLabels.StaticDeps) // we should only append these if there are sources to use them
} else if !depLabels.Deps.IsEmpty() {
ctx.MarkBp2buildUnconvertible(
bp2build_metrics_proto.UnconvertedReasonType_UNSUPPORTED,
"Module has direct dependencies but no sources. Bazel will not allow this.")
return
// android_library does not accept deps when there are no srcs because
// there is no compilation happening, but it accepts exports.
// The non-empty deps here are unnecessary as deps on the android_library
// since they aren't being propagated to any dependencies.
// So we can drop deps here.
deps = bazel.LabelListAttribute{}
}
name := a.Name()
props := AndroidLibraryBazelTargetModuleProperties()