diff options
| author | 2023-06-01 02:48:09 +0000 | |
|---|---|---|
| committer | 2023-06-06 00:07:40 +0000 | |
| commit | 5dba0ec98ce612aeaa7c7a27fd3c18895b4b15b5 (patch) | |
| tree | 1c7c6991cb851e0525fe7a127bbe5397c7422c7f /java/java.go | |
| parent | 39ccf93c65a2614aacf78a0a30980971308d0729 (diff) | |
Update runpath for jni libs
To support stem, cc libraries will be generated in
<pacakge_name>/<label.name>. Update RUNPATH of java binaries so that it
can find its jni deps
Test: bp2build
Test: TH
Bug: 240563612
Change-Id: Ia2f70f0424a8526ee35856225c1a8cd1067a8570
Diffstat (limited to 'java/java.go')
| -rw-r--r-- | java/java.go | 39 |
1 files changed, 15 insertions, 24 deletions
diff --git a/java/java.go b/java/java.go index a8793fe87..3a8047143 100644 --- a/java/java.go +++ b/java/java.go @@ -3104,24 +3104,15 @@ func javaBinaryHostBp2Build(ctx android.TopDownMutatorContext, m *Binary) { // Attribute jvm_flags var jvmFlags bazel.StringListAttribute if m.binaryProperties.Jni_libs != nil { - jniLibPackages := map[string]bool{} - for _, jniLibLabel := range android.BazelLabelForModuleDeps(ctx, m.binaryProperties.Jni_libs).Includes { - jniLibPackage := jniLibLabel.Label - indexOfColon := strings.Index(jniLibLabel.Label, ":") - if indexOfColon > 0 { - // JNI lib from other package - jniLibPackage = jniLibLabel.Label[2:indexOfColon] - } else if indexOfColon == 0 { - // JNI lib in the same package of java_binary - packageOfCurrentModule := m.GetBazelLabel(ctx, m) - jniLibPackage = packageOfCurrentModule[2:strings.Index(packageOfCurrentModule, ":")] - } - if _, inMap := jniLibPackages[jniLibPackage]; !inMap { - jniLibPackages[jniLibPackage] = true + jniLibPackages := []string{} + for _, jniLib := range m.binaryProperties.Jni_libs { + if jniLibModule, exists := ctx.ModuleFromName(jniLib); exists { + otherDir := ctx.OtherModuleDir(jniLibModule) + jniLibPackages = append(jniLibPackages, filepath.Join(otherDir, jniLib)) } } jniLibPaths := []string{} - for jniLibPackage, _ := range jniLibPackages { + for _, jniLibPackage := range jniLibPackages { // See cs/f:.*/third_party/bazel/.*java_stub_template.txt for the use of RUNPATH jniLibPaths = append(jniLibPaths, "$${RUNPATH}"+jniLibPackage) } @@ -3145,9 +3136,9 @@ func javaBinaryHostBp2Build(ctx android.TopDownMutatorContext, m *Binary) { } libInfo := libraryCreationInfo{ - deps: deps, - attrs: commonAttrs, - baseName: m.Name(), + deps: deps, + attrs: commonAttrs, + baseName: m.Name(), hasKotlin: bp2BuildInfo.hasKotlin, } libName := createLibraryTarget(ctx, libInfo) @@ -3189,9 +3180,9 @@ func javaTestHostBp2Build(ctx android.TopDownMutatorContext, m *TestHost) { } libInfo := libraryCreationInfo{ - deps: deps, - attrs: commonAttrs, - baseName: m.Name(), + deps: deps, + attrs: commonAttrs, + baseName: m.Name(), hasKotlin: bp2BuildInfo.hasKotlin, } libName := createLibraryTarget(ctx, libInfo) @@ -3204,9 +3195,9 @@ func javaTestHostBp2Build(ctx android.TopDownMutatorContext, m *TestHost) { // libraryCreationInfo encapsulates the info needed to create java_library target from // java_binary_host or java_test_host. type libraryCreationInfo struct { - deps bazel.LabelListAttribute - attrs *javaCommonAttributes - baseName string + deps bazel.LabelListAttribute + attrs *javaCommonAttributes + baseName string hasKotlin bool } |