Special case platform variant of bootstrap libs

Platform variants of libraries that set `bootstrap: true` in their
Android.bp file gets impl in Soong. This CL ports this behavior to
bp2build.

Note that even after this CL, there will be still be some other cases
where stub/impl logic does not match Soong perfectly (most notably the
platform_apis property which is propagated top-down from the parent
apex).

Test: bp2build.sh
Change-Id: I3da284ab42631d6de1c0d52e56ccbfd4e4a09f1d
This commit is contained in:
Spandan Das
2023-05-04 17:27:30 +00:00
parent 6d4d9da47f
commit 6aaab9d2aa

View File

@@ -1357,6 +1357,9 @@ func setStubsForDynamicDeps(ctx android.BazelConversionPathContext, axis bazel.C
// that tests of an apex library gets its implementation and not stubs.
// TODO (b/280343104): Discuss if we can drop this special handling for platform variants.
sameApiDomain = availableToSameApexes(apexAvailable, dep.(*Module).ApexAvailable())
if linkable, ok := ctx.Module().(LinkableInterface); ok && linkable.Bootstrap() {
sameApiDomain = true
}
} else {
sameApiDomain = android.InList(apiDomain, dep.(*Module).ApexAvailable())
}