Set __ANDROID_API__ for vendor modules to vndk version.

When building vendor modules with BOARD_VNDK_VERSION=current, the
API of the vendor modules will be current PLATFORM_VNDK_VERSION.
__ANDROID_API_FUTURE__ will be used as before if the version is a
CODENAME.

If BOARD_VNDK_VERSION is not "current", that means the VNDK version
of the vendor modules is BOARD_VNDK_VERSION.

Bug: 74833244
Test: Build and check boot.
Change-Id: I383c76a36101e39c70575b463880b52d3e9d90bb
This commit is contained in:
Justin Yun 2018-03-23 17:43:47 +09:00
parent eab15645fe
commit 732aa6afdf
3 changed files with 27 additions and 5 deletions

View File

@ -502,10 +502,17 @@ func (ctx *moduleContextImpl) useSdk() bool {
func (ctx *moduleContextImpl) sdkVersion() string {
if ctx.ctx.Device() {
if ctx.useVndk() {
return "current"
} else {
return String(ctx.mod.Properties.Sdk_version)
vndk_ver := ctx.ctx.DeviceConfig().VndkVersion()
if vndk_ver == "current" {
platform_vndk_ver := ctx.ctx.DeviceConfig().PlatformVndkVersion()
if inList(platform_vndk_ver, ctx.ctx.Config().PlatformVersionCombinedCodenames()) {
return "current"
}
return platform_vndk_ver
}
return vndk_ver
}
return String(ctx.mod.Properties.Sdk_version)
}
return ""
}

View File

@ -308,8 +308,13 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
}
if ctx.useVndk() {
// sdkVersion() returns VNDK version for vendor modules.
version := ctx.sdkVersion()
if version == "current" {
version = "__ANDROID_API_FUTURE__"
}
flags.GlobalFlags = append(flags.GlobalFlags,
"-D__ANDROID_API__=__ANDROID_API_FUTURE__", "-D__ANDROID_VNDK__")
"-D__ANDROID_API__="+version, "-D__ANDROID_VNDK__")
}
instructionSet := String(compiler.Properties.Instruction_set)

View File

@ -76,7 +76,17 @@ func (stub *llndkStubDecorator) compilerFlags(ctx ModuleContext, flags Flags, de
}
func (stub *llndkStubDecorator) compile(ctx ModuleContext, flags Flags, deps PathDeps) Objects {
objs, versionScript := compileStubLibrary(ctx, flags, String(stub.Properties.Symbol_file), "current", "--vndk")
vndk_ver := ctx.DeviceConfig().VndkVersion()
if vndk_ver == "current" {
platform_vndk_ver := ctx.DeviceConfig().PlatformVndkVersion()
if !inList(platform_vndk_ver, ctx.Config().PlatformVersionCombinedCodenames()) {
vndk_ver = platform_vndk_ver
}
} else if vndk_ver == "" {
// For non-enforcing devices, use "current"
vndk_ver = "current"
}
objs, versionScript := compileStubLibrary(ctx, flags, String(stub.Properties.Symbol_file), vndk_ver, "--vndk")
stub.versionScriptPath = versionScript
return objs
}