Create an intermediate java library for every java_binary target
We're already doing this for kotlin libraries as java_binary does not
support kotlin sources.
Change-Id: I4967b3aca21dac8e0eaf54d48cc35d57a4c4923e
diff --git a/bp2build/java_binary_host_conversion_test.go b/bp2build/java_binary_host_conversion_test.go
index 278a9bf..1b9777c 100644
--- a/bp2build/java_binary_host_conversion_test.go
+++ b/bp2build/java_binary_host_conversion_test.go
@@ -56,11 +56,9 @@
java_version: "8",
}`,
ExpectedBazelTargets: []string{
- MakeBazelTarget("java_binary", "java-binary-host-1", AttrNameToString{
- "srcs": `["a.java"]`,
- "main_class": `"com.android.test.MainClass"`,
- "deps": `["//other:jni-lib-1"]`,
- "jvm_flags": `["-Djava.library.path=$${RUNPATH}other"]`,
+ MakeBazelTarget("java_library", "java-binary-host-1_lib", AttrNameToString{
+ "srcs": `["a.java"]`,
+ "deps": `["//other:jni-lib-1"]`,
"javacopts": `[
"-Xdoclint:all/protected",
"-source 1.8 -target 1.8",
@@ -68,8 +66,15 @@
"target_compatible_with": `select({
"//build/bazel/platforms/os:android": ["@platforms//:incompatible"],
"//conditions:default": [],
- })`,
- }),
+ })`}),
+ MakeBazelTarget("java_binary", "java-binary-host-1", AttrNameToString{
+ "main_class": `"com.android.test.MainClass"`,
+ "jvm_flags": `["-Djava.library.path=$${RUNPATH}other"]`,
+ "runtime_deps": `[":java-binary-host-1_lib"]`,
+ "target_compatible_with": `select({
+ "//build/bazel/platforms/os:android": ["@platforms//:incompatible"],
+ "//conditions:default": [],
+ })`}),
},
})
}
@@ -122,15 +127,22 @@
}
`,
ExpectedBazelTargets: []string{
- MakeBazelTarget("java_binary", "java-binary-host-libs", AttrNameToString{
- "main_class": `"com.android.test.MainClass"`,
- "srcs": `["a.java"]`,
- "deps": `[":java-lib-dep-1-neverlink"]`,
+ MakeBazelTarget("java_library", "java-binary-host-libs_lib", AttrNameToString{
+ "srcs": `["a.java"]`,
+ "deps": `[":java-lib-dep-1-neverlink"]`,
"target_compatible_with": `select({
"//build/bazel/platforms/os:android": ["@platforms//:incompatible"],
"//conditions:default": [],
})`,
}),
+ MakeBazelTarget("java_binary", "java-binary-host-libs", AttrNameToString{
+ "main_class": `"com.android.test.MainClass"`,
+ "target_compatible_with": `select({
+ "//build/bazel/platforms/os:android": ["@platforms//:incompatible"],
+ "//conditions:default": [],
+ })`,
+ "runtime_deps": `[":java-binary-host-libs_lib"]`,
+ }),
},
})
}
@@ -146,7 +158,7 @@
}
`,
ExpectedBazelTargets: []string{
- MakeBazelTarget("kt_jvm_library", "java-binary-host_kt", AttrNameToString{
+ MakeBazelTarget("kt_jvm_library", "java-binary-host_lib", AttrNameToString{
"srcs": `[
"a.java",
"b.kt",
@@ -158,7 +170,7 @@
}),
MakeBazelTarget("java_binary", "java-binary-host", AttrNameToString{
"main_class": `"com.android.test.MainClass"`,
- "runtime_deps": `[":java-binary-host_kt"]`,
+ "runtime_deps": `[":java-binary-host_lib"]`,
"target_compatible_with": `select({
"//build/bazel/platforms/os:android": ["@platforms//:incompatible"],
"//conditions:default": [],
@@ -180,7 +192,7 @@
}
`,
ExpectedBazelTargets: []string{
- MakeBazelTarget("kt_jvm_library", "java-binary-host_kt", AttrNameToString{
+ MakeBazelTarget("kt_jvm_library", "java-binary-host_lib", AttrNameToString{
"srcs": `["a.java"]`,
"common_srcs": `["b.kt"]`,
"target_compatible_with": `select({
@@ -190,7 +202,7 @@
}),
MakeBazelTarget("java_binary", "java-binary-host", AttrNameToString{
"main_class": `"com.android.test.MainClass"`,
- "runtime_deps": `[":java-binary-host_kt"]`,
+ "runtime_deps": `[":java-binary-host_lib"]`,
"target_compatible_with": `select({
"//build/bazel/platforms/os:android": ["@platforms//:incompatible"],
"//conditions:default": [],
@@ -216,7 +228,7 @@
}
`,
ExpectedBazelTargets: []string{
- MakeBazelTarget("kt_jvm_library", "java-binary-host_kt", AttrNameToString{
+ MakeBazelTarget("kt_jvm_library", "java-binary-host_lib", AttrNameToString{
"srcs": `[
"a.java",
"b.kt",
@@ -233,7 +245,7 @@
}),
MakeBazelTarget("java_binary", "java-binary-host", AttrNameToString{
"main_class": `"com.android.test.MainClass"`,
- "runtime_deps": `[":java-binary-host_kt"]`,
+ "runtime_deps": `[":java-binary-host_lib"]`,
"target_compatible_with": `select({
"//build/bazel/platforms/os:android": ["@platforms//:incompatible"],
"//conditions:default": [],
@@ -259,7 +271,7 @@
}
`,
ExpectedBazelTargets: []string{
- MakeBazelTarget("kt_jvm_library", "java-binary-host_kt", AttrNameToString{
+ MakeBazelTarget("kt_jvm_library", "java-binary-host_lib", AttrNameToString{
"srcs": `[
"a.java",
"b.kt",
@@ -275,7 +287,7 @@
}),
MakeBazelTarget("java_binary", "java-binary-host", AttrNameToString{
"main_class": `"com.android.test.MainClass"`,
- "runtime_deps": `[":java-binary-host_kt"]`,
+ "runtime_deps": `[":java-binary-host_lib"]`,
"target_compatible_with": `select({
"//build/bazel/platforms/os:android": ["@platforms//:incompatible"],
"//conditions:default": [],
@@ -297,7 +309,7 @@
}
`,
ExpectedBazelTargets: []string{
- MakeBazelTarget("kt_jvm_library", "java-binary-host_kt", AttrNameToString{
+ MakeBazelTarget("kt_jvm_library", "java-binary-host_lib", AttrNameToString{
"srcs": `["a.kt"]`,
"kotlincflags": `[
"-flag1",
@@ -310,7 +322,7 @@
}),
MakeBazelTarget("java_binary", "java-binary-host", AttrNameToString{
"main_class": `"com.android.test.MainClass"`,
- "runtime_deps": `[":java-binary-host_kt"]`,
+ "runtime_deps": `[":java-binary-host_lib"]`,
"target_compatible_with": `select({
"//build/bazel/platforms/os:android": ["@platforms//:incompatible"],
"//conditions:default": [],