diff --git a/cc/androidmk.go b/cc/androidmk.go index ae34e3d1e..32ccf4c15 100644 --- a/cc/androidmk.go +++ b/cc/androidmk.go @@ -90,6 +90,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 2e551e1f4..4600a153d 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