Merge "Fix use_embedded_native_libs handling for android_test"

am: 0e7dbebe7e

Change-Id: Id3da0d134a3598d891ee242e65443f4c1c10e25b
This commit is contained in:
Sasha Smundak
2019-05-02 15:36:03 -07:00
committed by android-build-merger
3 changed files with 11 additions and 9 deletions

View File

@@ -81,7 +81,7 @@ type aapt struct {
extraAaptPackagesFile android.Path extraAaptPackagesFile android.Path
mergedManifestFile android.Path mergedManifestFile android.Path
isLibrary bool isLibrary bool
uncompressedJNI bool useEmbeddedNativeLibs bool
useEmbeddedDex bool useEmbeddedDex bool
usesNonSdkApis bool usesNonSdkApis bool
@@ -201,7 +201,7 @@ func (a *aapt) buildActions(ctx android.ModuleContext, sdkContext sdkContext, ex
manifestSrcPath := android.PathForModuleSrc(ctx, manifestFile) manifestSrcPath := android.PathForModuleSrc(ctx, manifestFile)
manifestPath := manifestFixer(ctx, manifestSrcPath, sdkContext, manifestPath := manifestFixer(ctx, manifestSrcPath, sdkContext,
a.isLibrary, a.uncompressedJNI, a.usesNonSdkApis, a.useEmbeddedDex) a.isLibrary, a.useEmbeddedNativeLibs, a.usesNonSdkApis, a.useEmbeddedDex)
a.transitiveManifestPaths = append(android.Paths{manifestPath}, transitiveStaticLibManifests...) a.transitiveManifestPaths = append(android.Paths{manifestPath}, transitiveStaticLibManifests...)

View File

@@ -43,7 +43,7 @@ var manifestMergerRule = pctx.AndroidStaticRule("manifestMerger",
// Uses manifest_fixer.py to inject minSdkVersion, etc. into an AndroidManifest.xml // Uses manifest_fixer.py to inject minSdkVersion, etc. into an AndroidManifest.xml
func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext sdkContext, func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext sdkContext,
isLibrary, uncompressedJNI, usesNonSdkApis, useEmbeddedDex bool) android.Path { isLibrary, useEmbeddedNativeLibs, usesNonSdkApis, useEmbeddedDex bool) android.Path {
var args []string var args []string
if isLibrary { if isLibrary {
@@ -54,8 +54,8 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext
ctx.ModuleErrorf("invalid minSdkVersion: %s", err) ctx.ModuleErrorf("invalid minSdkVersion: %s", err)
} }
if minSdkVersion >= 23 { if minSdkVersion >= 23 {
args = append(args, fmt.Sprintf("--extract-native-libs=%v", !uncompressedJNI)) args = append(args, fmt.Sprintf("--extract-native-libs=%v", !useEmbeddedNativeLibs))
} else if uncompressedJNI { } else if useEmbeddedNativeLibs {
ctx.ModuleErrorf("module attempted to store uncompressed native libraries, but minSdkVersion=%d doesn't support it", ctx.ModuleErrorf("module attempted to store uncompressed native libraries, but minSdkVersion=%d doesn't support it",
minSdkVersion) minSdkVersion)
} }

View File

@@ -162,14 +162,14 @@ func (a *AndroidApp) DepsMutator(ctx android.BottomUpMutatorContext) {
} }
func (a *AndroidApp) GenerateAndroidBuildActions(ctx android.ModuleContext) { func (a *AndroidApp) GenerateAndroidBuildActions(ctx android.ModuleContext) {
a.aapt.uncompressedJNI = a.shouldUncompressJNI(ctx) a.aapt.useEmbeddedNativeLibs = a.useEmbeddedNativeLibs(ctx)
a.aapt.useEmbeddedDex = Bool(a.appProperties.Use_embedded_dex) a.aapt.useEmbeddedDex = Bool(a.appProperties.Use_embedded_dex)
a.generateAndroidBuildActions(ctx) a.generateAndroidBuildActions(ctx)
} }
// shouldUncompressJNI returns true if the native libraries should be stored in the APK uncompressed and the // Returns true if the native libraries should be stored in the APK uncompressed and the
// extractNativeLibs application flag should be set to false in the manifest. // extractNativeLibs application flag should be set to false in the manifest.
func (a *AndroidApp) shouldUncompressJNI(ctx android.ModuleContext) bool { func (a *AndroidApp) useEmbeddedNativeLibs(ctx android.ModuleContext) bool {
minSdkVersion, err := sdkVersionToNumber(ctx, a.minSdkVersion()) minSdkVersion, err := sdkVersionToNumber(ctx, a.minSdkVersion())
if err != nil { if err != nil {
ctx.PropertyErrorf("min_sdk_version", "invalid value %q: %s", a.minSdkVersion(), err) ctx.PropertyErrorf("min_sdk_version", "invalid value %q: %s", a.minSdkVersion(), err)
@@ -295,7 +295,7 @@ func (a *AndroidApp) jniBuildActions(jniLibs []jniLib, ctx android.ModuleContext
a.appProperties.AlwaysPackageNativeLibs a.appProperties.AlwaysPackageNativeLibs
if embedJni { if embedJni {
jniJarFile = android.PathForModuleOut(ctx, "jnilibs.zip") jniJarFile = android.PathForModuleOut(ctx, "jnilibs.zip")
TransformJniLibsToJar(ctx, jniJarFile, jniLibs, a.shouldUncompressJNI(ctx)) TransformJniLibsToJar(ctx, jniJarFile, jniLibs, a.useEmbeddedNativeLibs(ctx))
} else { } else {
a.installJniLibs = jniLibs a.installJniLibs = jniLibs
} }
@@ -489,6 +489,8 @@ func (a *AndroidTest) GenerateAndroidBuildActions(ctx android.ModuleContext) {
a.additionalAaptFlags = append(a.additionalAaptFlags, "--rename-instrumentation-target-package "+manifestPackageName) a.additionalAaptFlags = append(a.additionalAaptFlags, "--rename-instrumentation-target-package "+manifestPackageName)
} }
} }
a.aapt.useEmbeddedNativeLibs = a.useEmbeddedNativeLibs(ctx)
a.aapt.useEmbeddedDex = Bool(a.appProperties.Use_embedded_dex)
a.generateAndroidBuildActions(ctx) a.generateAndroidBuildActions(ctx)
a.testConfig = tradefed.AutoGenInstrumentationTestConfig(ctx, a.testProperties.Test_config, a.testProperties.Test_config_template, a.manifestPath, a.testProperties.Test_suites) a.testConfig = tradefed.AutoGenInstrumentationTestConfig(ctx, a.testProperties.Test_config, a.testProperties.Test_config_template, a.manifestPath, a.testProperties.Test_suites)