From 4016d7b53e70bdf53dfdc93c8a7969f70fe2eb05 Mon Sep 17 00:00:00 2001 From: Bill Peckham Date: Thu, 20 May 2021 11:54:21 -0700 Subject: [PATCH] Check for product variant in addition to core variant. It's possible that a module will have a product variant but not a core variant. In that case, we still need to apply the vendor suffix to the androidmk module name. Bug: 188720375 Bug: 187963715 Test: Build vendor image using vendor snapshot. Change-Id: I190fdd707ca23357d1c324c1b1f3318457625f03 --- cc/snapshot_prebuilt.go | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/cc/snapshot_prebuilt.go b/cc/snapshot_prebuilt.go index 0b1147ef2..a7351a9ef 100644 --- a/cc/snapshot_prebuilt.go +++ b/cc/snapshot_prebuilt.go @@ -454,13 +454,30 @@ func (p *baseSnapshotDecorator) snapshotAndroidMkSuffix() string { } func (p *baseSnapshotDecorator) setSnapshotAndroidMkSuffix(ctx android.ModuleContext) { - if ctx.OtherModuleDependencyVariantExists([]blueprint.Variation{ - {Mutator: "image", Variation: android.CoreVariation}, - }, ctx.Module().(*Module).BaseModuleName()) { + coreVariations := append(ctx.Target().Variations(), blueprint.Variation{ + Mutator: "image", + Variation: android.CoreVariation}) + + if ctx.OtherModuleFarDependencyVariantExists(coreVariations, ctx.Module().(*Module).BaseModuleName()) { p.baseProperties.Androidmk_suffix = p.image.moduleNameSuffix() - } else { - p.baseProperties.Androidmk_suffix = "" + return } + + // If there is no matching core variation, there could still be a + // product variation, for example if a module is product specific and + // vendor available. In that case, we also want to add the androidmk + // suffix. + + productVariations := append(ctx.Target().Variations(), blueprint.Variation{ + Mutator: "image", + Variation: ProductVariationPrefix + ctx.DeviceConfig().PlatformVndkVersion()}) + + if ctx.OtherModuleFarDependencyVariantExists(productVariations, ctx.Module().(*Module).BaseModuleName()) { + p.baseProperties.Androidmk_suffix = p.image.moduleNameSuffix() + return + } + + p.baseProperties.Androidmk_suffix = "" } // Call this with a module suffix after creating a snapshot module, such as