From 76106d977e01c2542c6324c507c5ce1b80fcc293 Mon Sep 17 00:00:00 2001 From: Jooyung Han Date: Mon, 20 May 2019 18:49:10 +0900 Subject: [PATCH] exports LOCAL_SOONG_VNDK_VERSION for VNDK libs For vndk_prebuilt_shared module, it is set by 'version' property. For other vndk libs(e.g. cc_library with vndk.enabled), it is set as PLATFORM_VNDK_VERSION. Background: To support "skip installing current VNDK". You can get a system.img without current VNDK libs. This may help when you want a smaller system.img given that the image will be used with a specific version (not current) of vendor image. Bug: 132140714 Test: m TARGET_SKIP_CURRENT_VNDK=true && see if current VNDK is not installed Change-Id: I1c603efc3e95fe8bdf870f2de91994077899fca7 --- cc/androidmk.go | 3 +++ cc/cc.go | 7 +++++++ cc/vndk.go | 12 ++++++++++++ 3 files changed, 22 insertions(+) diff --git a/cc/androidmk.go b/cc/androidmk.go index c7883e2fa..d7f74486a 100644 --- a/cc/androidmk.go +++ b/cc/androidmk.go @@ -89,6 +89,9 @@ func (c *Module) AndroidMk() android.AndroidMkData { fmt.Fprintln(w, "LOCAL_SOONG_LINK_TYPE :=", c.makeLinkType) if c.useVndk() { fmt.Fprintln(w, "LOCAL_USE_VNDK := true") + if c.isVndk() && !c.static() { + fmt.Fprintln(w, "LOCAL_SOONG_VNDK_VERSION := "+c.vndkVersion()) + } } }, }, diff --git a/cc/cc.go b/cc/cc.go index a3b9a92d9..96acf8172 100644 --- a/cc/cc.go +++ b/cc/cc.go @@ -534,6 +534,13 @@ func (c *Module) isVndk() bool { return false } +func (c *Module) vndkVersion() string { + if vndkdep := c.vndkdep; vndkdep != nil { + return vndkdep.Properties.Vndk.Version + } + return "" +} + func (c *Module) isPgoCompile() bool { if pgo := c.pgo; pgo != nil { return pgo.Properties.PgoCompile diff --git a/cc/vndk.go b/cc/vndk.go index a1d67af10..60a3d78f5 100644 --- a/cc/vndk.go +++ b/cc/vndk.go @@ -49,6 +49,10 @@ type VndkProperties struct { // Extending another module Extends *string + + // for vndk_prebuilt_shared, this is set by "version" property. + // Otherwise, this is set as PLATFORM_VNDK_VERSION. + Version string `blueprint:"mutated"` } } @@ -325,6 +329,14 @@ func VndkMutator(mctx android.BottomUpMutatorContext) { return } + if m.isVndk() { + if lib, ok := m.linker.(*vndkPrebuiltLibraryDecorator); ok { + m.vndkdep.Properties.Vndk.Version = lib.version() + } else { + m.vndkdep.Properties.Vndk.Version = mctx.DeviceConfig().PlatformVndkVersion() + } + } + if _, ok := m.linker.(*llndkStubDecorator); ok { processLlndkLibrary(mctx, m) return