diff --git a/android/config.go b/android/config.go index 16870f10b..bf8edcabf 100644 --- a/android/config.go +++ b/android/config.go @@ -648,6 +648,10 @@ func (c *deviceConfig) VndkVersion() string { return String(c.config.ProductVariables.DeviceVndkVersion) } +func (c *deviceConfig) PlatformVndkVersion() string { + return String(c.config.ProductVariables.Platform_vndk_version) +} + func (c *deviceConfig) ExtraVndkVersions() []string { return c.config.ProductVariables.ExtraVndkVersions } diff --git a/android/variable.go b/android/variable.go index ab8103aeb..681543825 100644 --- a/android/variable.go +++ b/android/variable.go @@ -111,6 +111,7 @@ type productVariables struct { Platform_sdk_final *bool `json:",omitempty"` Platform_version_active_codenames []string `json:",omitempty"` Platform_version_future_codenames []string `json:",omitempty"` + Platform_vndk_version *string `json:",omitempty"` DeviceName *string `json:",omitempty"` DeviceArch *string `json:",omitempty"` diff --git a/cc/library.go b/cc/library.go index cf106173d..b664a5ecb 100644 --- a/cc/library.go +++ b/cc/library.go @@ -720,13 +720,14 @@ func (library *libraryDecorator) toc() android.OptionalPath { func (library *libraryDecorator) install(ctx ModuleContext, file android.Path) { if library.shared() { - if ctx.Device() { - if ctx.useVndk() { - if ctx.isVndkSp() { - library.baseInstaller.subDir = "vndk-sp" - } else if ctx.isVndk() { - library.baseInstaller.subDir = "vndk" - } + if ctx.Device() && ctx.useVndk() { + if ctx.isVndkSp() { + library.baseInstaller.subDir = "vndk-sp" + } else if ctx.isVndk() { + library.baseInstaller.subDir = "vndk" + } + if ctx.isVndk() && ctx.DeviceConfig().PlatformVndkVersion() != "current" { + library.baseInstaller.subDir += "-" + ctx.DeviceConfig().PlatformVndkVersion() } } library.baseInstaller.install(ctx, file)