diff options
Diffstat (limited to 'java/app.go')
-rwxr-xr-x | java/app.go | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/java/app.go b/java/app.go index 23a9816b4..c3699784c 100755 --- a/java/app.go +++ b/java/app.go @@ -417,6 +417,9 @@ func (a *AndroidApp) aaptBuildActions(ctx android.ModuleContext) { a.aapt.splitNames = a.appProperties.Package_splits a.aapt.LoggingParent = String(a.overridableAppProperties.Logging_parent) + if a.Updatable() { + a.aapt.defaultManifestVersion = android.DefaultUpdatableModuleVersion + } a.aapt.buildActions(ctx, android.SdkContext(a), a.classLoaderContexts, a.usesLibraryProperties.Exclude_uses_libs, aaptLinkFlags...) @@ -472,14 +475,14 @@ func (a *AndroidApp) dexBuildActions(ctx android.ModuleContext) android.Path { return a.dexJarFile.PathOrNil() } -func (a *AndroidApp) jniBuildActions(jniLibs []jniLib, ctx android.ModuleContext) android.WritablePath { +func (a *AndroidApp) jniBuildActions(jniLibs []jniLib, prebuiltJniPackages android.Paths, ctx android.ModuleContext) android.WritablePath { var jniJarFile android.WritablePath - if len(jniLibs) > 0 { + if len(jniLibs) > 0 || len(prebuiltJniPackages) > 0 { a.jniLibs = jniLibs if a.shouldEmbedJnis(ctx) { jniJarFile = android.PathForModuleOut(ctx, "jnilibs.zip") a.installPathForJNISymbols = a.installPath(ctx) - TransformJniLibsToJar(ctx, jniJarFile, jniLibs, a.useEmbeddedNativeLibs(ctx)) + TransformJniLibsToJar(ctx, jniJarFile, jniLibs, prebuiltJniPackages, a.useEmbeddedNativeLibs(ctx)) for _, jni := range jniLibs { if jni.coverageFile.Valid() { // Only collect coverage for the first target arch if this is a multilib target. @@ -623,8 +626,8 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) { dexJarFile := a.dexBuildActions(ctx) - jniLibs, certificateDeps := collectAppDeps(ctx, a, a.shouldEmbedJnis(ctx), !Bool(a.appProperties.Jni_uses_platform_apis)) - jniJarFile := a.jniBuildActions(jniLibs, ctx) + jniLibs, prebuiltJniPackages, certificateDeps := collectAppDeps(ctx, a, a.shouldEmbedJnis(ctx), !Bool(a.appProperties.Jni_uses_platform_apis)) + jniJarFile := a.jniBuildActions(jniLibs, prebuiltJniPackages, ctx) if ctx.Failed() { return @@ -724,9 +727,10 @@ type appDepsInterface interface { func collectAppDeps(ctx android.ModuleContext, app appDepsInterface, shouldCollectRecursiveNativeDeps bool, - checkNativeSdkVersion bool) ([]jniLib, []Certificate) { + checkNativeSdkVersion bool) ([]jniLib, android.Paths, []Certificate) { var jniLibs []jniLib + var prebuiltJniPackages android.Paths var certificates []Certificate seenModulePaths := make(map[string]bool) @@ -775,6 +779,10 @@ func collectAppDeps(ctx android.ModuleContext, app appDepsInterface, return shouldCollectRecursiveNativeDeps } + if info, ok := ctx.OtherModuleProvider(module, JniPackageProvider).(JniPackageInfo); ok { + prebuiltJniPackages = append(prebuiltJniPackages, info.JniPackages...) + } + if tag == certificateTag { if dep, ok := module.(*AndroidAppCertificate); ok { certificates = append(certificates, dep.Certificate) @@ -786,7 +794,7 @@ func collectAppDeps(ctx android.ModuleContext, app appDepsInterface, return false }) - return jniLibs, certificates + return jniLibs, prebuiltJniPackages, certificates } func (a *AndroidApp) WalkPayloadDeps(ctx android.ModuleContext, do android.PayloadDepsCallback) { @@ -954,6 +962,18 @@ func (a *AndroidTest) InstallInTestcases() bool { return true } +type androidTestApp interface { + includedInTestSuite(searchPrefix string) bool +} + +func (a *AndroidTest) includedInTestSuite(searchPrefix string) bool { + return android.PrefixInList(a.testProperties.Test_suites, searchPrefix) +} + +func (a *AndroidTestHelperApp) includedInTestSuite(searchPrefix string) bool { + return android.PrefixInList(a.appTestHelperAppProperties.Test_suites, searchPrefix) +} + func (a *AndroidTest) GenerateAndroidBuildActions(ctx android.ModuleContext) { var configs []tradefed.Config if a.appTestProperties.Instrumentation_target_package != nil { |