Don't forward apex dependencies to platform when they are added later

IncomingApexTransition normally returns "" for modules that have
no apex variation so that apex variations can depend on non-apex
variations, for example for NDK libraries.

addDependencyOntoApexModulePair uses OtherModuleDependencyVariantExists
to decide whether to add a dependency on a module in an apex.  If
IncomingApexTransition returns "" then OtherModuleDependencyVariantExists
will always return true.  Return the incoming variation when addding
dependencies after the apex transition mutator has already run.

Bug: 319288033
Flag: EXEMPT bugfix
Test: all soong tests pass with later patches applied
Change-Id: Iec40c3be2ed04dca16a9fa6fa0a1c31056b536a8
This commit is contained in:
Colin Cross
2024-06-26 13:04:56 -07:00
parent e1a8555581
commit 77c5e9f9d4

View File

@@ -610,9 +610,15 @@ func IncomingApexTransition(ctx IncomingTransitionContext, incomingVariation str
return ""
}
// If this module has no apex variations the use the platform variation.
if len(apexInfos) == 0 {
return ""
if ctx.IsAddingDependency() {
// If this module has no apex variations we can't do any mapping on the incoming variation, just return it
// and let the caller get a "missing variant" error.
return incomingVariation
} else {
// If this module has no apex variations the use the platform variation.
return ""
}
}
// Convert the list of apex infos into from the AllApexInfoProvider into the merged list