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
This commit is contained in:
Jooyung Han 2019-05-20 18:49:10 +09:00
parent 288a1e2957
commit 76106d977e
3 changed files with 22 additions and 0 deletions

View file

@ -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())
}
}
},
},

View file

@ -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

View file

@ -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