Merge "copy JNI from AAR files to android_app APK" am: fb845984df
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2149174 Change-Id: I8697a193bf054623dcdf67f6beded56a75c52875 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
19
java/app.go
19
java/app.go
@@ -478,14 +478,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.
|
||||
@@ -629,8 +629,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
|
||||
@@ -733,9 +733,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)
|
||||
|
||||
@@ -784,6 +785,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)
|
||||
@@ -795,7 +800,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) {
|
||||
|
Reference in New Issue
Block a user