Add target_arch to vndk prebuilt module name

To distinguish libfoo.vndk.$VER prebuilts of various
vndk_v$VER_$ARCH phony package modules, append $ARCH to the
LOCAL_MODULE name for VNDK prebuilts.
e.g. libfoo.vndk.$VER becomes libfoo.vndk.$VER.$ARCH

Test: m -j PRODUCT_EXTRA_VNDK_VERSIONS=27
Bug: 71370248
Change-Id: I3e9ebd929111ceb48e362c500adfb4b7a94444e8
diff --git a/cc/androidmk.go b/cc/androidmk.go
index efd4ee7..e78c419 100644
--- a/cc/androidmk.go
+++ b/cc/androidmk.go
@@ -355,7 +355,7 @@
 func (c *vndkPrebuiltLibraryDecorator) AndroidMk(ctx AndroidMkContext, ret *android.AndroidMkData) {
 	ret.Class = "SHARED_LIBRARIES"
 
-	ret.SubName = vndkSuffix + c.version()
+	ret.SubName = c.NameSuffix()
 
 	ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) {
 		c.libraryDecorator.androidMkWriteExportedFlags(w)
diff --git a/cc/vndk_prebuilt.go b/cc/vndk_prebuilt.go
index 9ccab03..b4fcb57 100644
--- a/cc/vndk_prebuilt.go
+++ b/cc/vndk_prebuilt.go
@@ -47,8 +47,11 @@
 // }
 //
 type vndkPrebuiltProperties struct {
-	// VNDK snapshot version that is formated as {SDK_ver}.{Major}.{Minor}.
-	Version string
+	// VNDK snapshot version.
+	Version *string
+
+	// Target arch name of the snapshot (e.g. 'arm64' for variant 'aosp_arm64_ab')
+	Target_arch *string
 
 	// Prebuilt files for each arch.
 	Srcs []string `android:"arch_variant"`
@@ -60,15 +63,26 @@
 }
 
 func (p *vndkPrebuiltLibraryDecorator) Name(name string) string {
-	return name + vndkSuffix + p.version()
+	return name + p.NameSuffix()
+}
+
+func (p *vndkPrebuiltLibraryDecorator) NameSuffix() string {
+	if p.arch() != "" {
+		return vndkSuffix + p.version() + "." + p.arch()
+	}
+	return vndkSuffix + p.version()
 }
 
 func (p *vndkPrebuiltLibraryDecorator) version() string {
-	return p.properties.Version
+	return String(p.properties.Version)
+}
+
+func (p *vndkPrebuiltLibraryDecorator) arch() string {
+	return String(p.properties.Target_arch)
 }
 
 func (p *vndkPrebuiltLibraryDecorator) linkerFlags(ctx ModuleContext, flags Flags) Flags {
-	p.libraryDecorator.libName = strings.TrimSuffix(ctx.ModuleName(), vndkSuffix+p.version())
+	p.libraryDecorator.libName = strings.TrimSuffix(ctx.ModuleName(), p.NameSuffix())
 	return p.libraryDecorator.linkerFlags(ctx, flags)
 }