Merge changes from topic "update-prebuilts-r18b"

* changes:
  Don't use libandroid_support post-21.
  Up the NDK's minimum supported API level.
  Remove legacy NDK code.
This commit is contained in:
Dan Albert
2018-11-28 16:19:01 +00:00
committed by Gerrit Code Review
3 changed files with 27 additions and 10 deletions

View File

@@ -482,7 +482,7 @@ func (c *config) PlatformSdkCodename() string {
} }
func (c *config) MinSupportedSdkVersion() int { func (c *config) MinSupportedSdkVersion() int {
return 14 return 16
} }
func (c *config) DefaultAppTargetSdkInt() int { func (c *config) DefaultAppTargetSdkInt() int {

View File

@@ -299,6 +299,7 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
} }
if ctx.useSdk() { if ctx.useSdk() {
// TODO: Switch to --sysroot.
// The NDK headers are installed to a common sysroot. While a more // The NDK headers are installed to a common sysroot. While a more
// typical Soong approach would be to only make the headers for the // typical Soong approach would be to only make the headers for the
// library you're using available, we're trying to emulate the NDK // library you're using available, we're trying to emulate the NDK
@@ -307,6 +308,7 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
"-isystem "+getCurrentIncludePath(ctx).String(), "-isystem "+getCurrentIncludePath(ctx).String(),
"-isystem "+getCurrentIncludePath(ctx).Join(ctx, config.NDKTriple(tc)).String()) "-isystem "+getCurrentIncludePath(ctx).Join(ctx, config.NDKTriple(tc)).String())
// TODO: Migrate to API suffixed triple?
// Traditionally this has come from android/api-level.h, but with the // Traditionally this has come from android/api-level.h, but with the
// libc headers unified it must be set by the build system since we // libc headers unified it must be set by the build system since we
// don't have per-API level copies of that header now. // don't have per-API level copies of that header now.
@@ -316,14 +318,6 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
} }
flags.GlobalFlags = append(flags.GlobalFlags, flags.GlobalFlags = append(flags.GlobalFlags,
"-D__ANDROID_API__="+version) "-D__ANDROID_API__="+version)
// Until the full NDK has been migrated to using ndk_headers, we still
// need to add the legacy sysroot includes to get the full set of
// headers.
legacyIncludes := fmt.Sprintf(
"prebuilts/ndk/current/platforms/android-%s/arch-%s/usr/include",
ctx.sdkVersion(), ctx.Arch().ArchType.String())
flags.SystemIncludeFlags = append(flags.SystemIncludeFlags, "-isystem "+legacyIncludes)
} }
if ctx.useVndk() { if ctx.useVndk() {

View File

@@ -17,6 +17,7 @@ package cc
import ( import (
"android/soong/android" "android/soong/android"
"fmt" "fmt"
"strconv"
) )
func getNdkStlFamily(m *Module) string { func getNdkStlFamily(m *Module) string {
@@ -110,6 +111,26 @@ func (stl *stl) begin(ctx BaseModuleContext) {
}() }()
} }
func needsLibAndroidSupport(ctx BaseModuleContext) bool {
versionStr, err := normalizeNdkApiLevel(ctx, ctx.sdkVersion(), ctx.Arch())
if err != nil {
ctx.PropertyErrorf("sdk_version", err.Error())
}
if versionStr == "current" {
return false
}
version, err := strconv.Atoi(versionStr)
if err != nil {
panic(fmt.Sprintf(
"invalid API level returned from normalizeNdkApiLevel: %q",
versionStr))
}
return version < 21
}
func (stl *stl) deps(ctx BaseModuleContext, deps Deps) Deps { func (stl *stl) deps(ctx BaseModuleContext, deps Deps) Deps {
switch stl.Properties.SelectedStl { switch stl.Properties.SelectedStl {
case "libstdc++": case "libstdc++":
@@ -141,7 +162,9 @@ func (stl *stl) deps(ctx BaseModuleContext, deps Deps) Deps {
} else { } else {
deps.StaticLibs = append(deps.StaticLibs, stl.Properties.SelectedStl, "ndk_libc++abi") deps.StaticLibs = append(deps.StaticLibs, stl.Properties.SelectedStl, "ndk_libc++abi")
} }
if needsLibAndroidSupport(ctx) {
deps.StaticLibs = append(deps.StaticLibs, "ndk_libandroid_support") deps.StaticLibs = append(deps.StaticLibs, "ndk_libandroid_support")
}
if ctx.Arch().ArchType == android.Arm { if ctx.Arch().ArchType == android.Arm {
deps.StaticLibs = append(deps.StaticLibs, "ndk_libunwind") deps.StaticLibs = append(deps.StaticLibs, "ndk_libunwind")
} }