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)
}