Loading bp2build/java_library_conversion_test.go +24 −21 Original line number Diff line number Diff line Loading @@ -15,7 +15,6 @@ package bp2build import ( "fmt" "testing" "android/soong/android" Loading Loading @@ -143,26 +142,6 @@ java_library { }) } func TestJavaLibraryFailsToConvertLibsWithNoSrcs(t *testing.T) { runJavaLibraryTestCase(t, Bp2buildTestCase{ ExpectedErr: fmt.Errorf("Module has direct dependencies but no sources. Bazel will not allow this."), Blueprint: `java_library { name: "java-lib-1", libs: ["java-lib-2"], sdk_version: "current", bazel_module: { bp2build_available: true }, } java_library { name: "java-lib-2", srcs: ["a.java"], sdk_version: "current", bazel_module: { bp2build_available: false }, }`, ExpectedBazelTargets: []string{}, }) } func TestJavaLibraryPlugins(t *testing.T) { runJavaLibraryTestCaseWithRegistrationCtxFunc(t, Bp2buildTestCase{ Blueprint: `java_library { Loading Loading @@ -869,6 +848,30 @@ func TestJavaLibraryKotlinCommonSrcs(t *testing.T) { }) } func TestJavaLibraryLibsWithNoSrcs(t *testing.T) { runJavaLibraryTestCase(t, Bp2buildTestCase{ Description: "java_library that has libs but no srcs", Blueprint: `java_library { name: "java-lib-1", libs: ["java-lib-2"], sdk_version: "current", bazel_module: { bp2build_available: true }, } java_library{ name: "java-lib-2", bazel_module: { bp2build_available: false }, } `, ExpectedBazelTargets: []string{ MakeBazelTarget("java_library", "java-lib-1", AttrNameToString{ "sdk_version": `"current"`, }), MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"), }, }) } func TestJavaLibraryArchVariantDeps(t *testing.T) { runJavaLibraryTestCase(t, Bp2buildTestCase{ Description: "java_library with arch variant libs", Loading bp2build/java_proto_conversion_test.go +1 −4 Original line number Diff line number Diff line Loading @@ -167,10 +167,7 @@ java_library_static { "sdk_version": `"current"`, }), MakeBazelTarget("java_library", "java-protos", AttrNameToString{ "exports": `[ ":java-protos_java_proto_lite", ":java-lib-neverlink", ]`, "exports": `[":java-protos_java_proto_lite"]`, "java_version": `"7"`, "sdk_version": `"current"`, }), Loading java/java.go +10 −22 Original line number Diff line number Diff line Loading @@ -2888,7 +2888,6 @@ type bp2BuildJavaInfo struct { // separates dependencies into dynamic dependencies and static dependencies. DepLabels *javaDependencyLabels hasKotlin bool onlyProtoInSrcs bool } func javaXsdTargetName(xsd android.XsdConfigBp2buildTargets) string { Loading Loading @@ -2951,9 +2950,6 @@ func (m *Library) convertLibraryAttrsBp2Build(ctx android.TopDownMutatorContext) staticDeps.Append(srcPartitions[xsdSrcPartition]) _, protoInSrcs := srcPartitions[protoSrcPartition] onlyProtoInSrcs := protoInSrcs && len(srcPartitions) == 1 if !srcPartitions[logtagSrcPartition].IsEmpty() { logtagsLibName := m.Name() + "_logtags" ctx.CreateBazelTargetModule( Loading Loading @@ -3093,7 +3089,6 @@ func (m *Library) convertLibraryAttrsBp2Build(ctx android.TopDownMutatorContext) bp2BuildInfo := &bp2BuildJavaInfo{ DepLabels: depLabels, hasKotlin: hasKotlin, onlyProtoInSrcs: onlyProtoInSrcs, } return commonAttrs, bp2BuildInfo, true Loading Loading @@ -3137,19 +3132,12 @@ func javaLibraryBp2Build(ctx android.TopDownMutatorContext, m *Library) { if !commonAttrs.Srcs.IsEmpty() { deps.Append(exports) // we should only append these if there are sources to use them } else if !deps.IsEmpty() { if bp2BuildInfo.onlyProtoInSrcs { // java_library does not accept deps when there are no srcs because // there is no compilation happening, but it accepts exports. // bp2build converts this module to 2 java_libraries + java_xx_proto_library + proto_library // the non-empty deps here are not necessary for compiling the protos, in which case // they're unnecessary as deps on the java_library as well since they aren't // being propagated to any dependencies. // so we can put the deps to exports and drop deps here. exports.Append(deps) // The non-empty deps here are unnecessary as deps on the java_library // since they aren't being propagated to any dependencies. // So we can drop deps here. deps = bazel.LabelListAttribute{} } else { ctx.ModuleErrorf("Module has direct dependencies but no sources. Bazel will not allow this.") } } var props bazel.BazelTargetModuleProperties attrs := &javaLibraryAttributes{ Loading Loading
bp2build/java_library_conversion_test.go +24 −21 Original line number Diff line number Diff line Loading @@ -15,7 +15,6 @@ package bp2build import ( "fmt" "testing" "android/soong/android" Loading Loading @@ -143,26 +142,6 @@ java_library { }) } func TestJavaLibraryFailsToConvertLibsWithNoSrcs(t *testing.T) { runJavaLibraryTestCase(t, Bp2buildTestCase{ ExpectedErr: fmt.Errorf("Module has direct dependencies but no sources. Bazel will not allow this."), Blueprint: `java_library { name: "java-lib-1", libs: ["java-lib-2"], sdk_version: "current", bazel_module: { bp2build_available: true }, } java_library { name: "java-lib-2", srcs: ["a.java"], sdk_version: "current", bazel_module: { bp2build_available: false }, }`, ExpectedBazelTargets: []string{}, }) } func TestJavaLibraryPlugins(t *testing.T) { runJavaLibraryTestCaseWithRegistrationCtxFunc(t, Bp2buildTestCase{ Blueprint: `java_library { Loading Loading @@ -869,6 +848,30 @@ func TestJavaLibraryKotlinCommonSrcs(t *testing.T) { }) } func TestJavaLibraryLibsWithNoSrcs(t *testing.T) { runJavaLibraryTestCase(t, Bp2buildTestCase{ Description: "java_library that has libs but no srcs", Blueprint: `java_library { name: "java-lib-1", libs: ["java-lib-2"], sdk_version: "current", bazel_module: { bp2build_available: true }, } java_library{ name: "java-lib-2", bazel_module: { bp2build_available: false }, } `, ExpectedBazelTargets: []string{ MakeBazelTarget("java_library", "java-lib-1", AttrNameToString{ "sdk_version": `"current"`, }), MakeNeverlinkDuplicateTarget("java_library", "java-lib-1"), }, }) } func TestJavaLibraryArchVariantDeps(t *testing.T) { runJavaLibraryTestCase(t, Bp2buildTestCase{ Description: "java_library with arch variant libs", Loading
bp2build/java_proto_conversion_test.go +1 −4 Original line number Diff line number Diff line Loading @@ -167,10 +167,7 @@ java_library_static { "sdk_version": `"current"`, }), MakeBazelTarget("java_library", "java-protos", AttrNameToString{ "exports": `[ ":java-protos_java_proto_lite", ":java-lib-neverlink", ]`, "exports": `[":java-protos_java_proto_lite"]`, "java_version": `"7"`, "sdk_version": `"current"`, }), Loading
java/java.go +10 −22 Original line number Diff line number Diff line Loading @@ -2888,7 +2888,6 @@ type bp2BuildJavaInfo struct { // separates dependencies into dynamic dependencies and static dependencies. DepLabels *javaDependencyLabels hasKotlin bool onlyProtoInSrcs bool } func javaXsdTargetName(xsd android.XsdConfigBp2buildTargets) string { Loading Loading @@ -2951,9 +2950,6 @@ func (m *Library) convertLibraryAttrsBp2Build(ctx android.TopDownMutatorContext) staticDeps.Append(srcPartitions[xsdSrcPartition]) _, protoInSrcs := srcPartitions[protoSrcPartition] onlyProtoInSrcs := protoInSrcs && len(srcPartitions) == 1 if !srcPartitions[logtagSrcPartition].IsEmpty() { logtagsLibName := m.Name() + "_logtags" ctx.CreateBazelTargetModule( Loading Loading @@ -3093,7 +3089,6 @@ func (m *Library) convertLibraryAttrsBp2Build(ctx android.TopDownMutatorContext) bp2BuildInfo := &bp2BuildJavaInfo{ DepLabels: depLabels, hasKotlin: hasKotlin, onlyProtoInSrcs: onlyProtoInSrcs, } return commonAttrs, bp2BuildInfo, true Loading Loading @@ -3137,19 +3132,12 @@ func javaLibraryBp2Build(ctx android.TopDownMutatorContext, m *Library) { if !commonAttrs.Srcs.IsEmpty() { deps.Append(exports) // we should only append these if there are sources to use them } else if !deps.IsEmpty() { if bp2BuildInfo.onlyProtoInSrcs { // java_library does not accept deps when there are no srcs because // there is no compilation happening, but it accepts exports. // bp2build converts this module to 2 java_libraries + java_xx_proto_library + proto_library // the non-empty deps here are not necessary for compiling the protos, in which case // they're unnecessary as deps on the java_library as well since they aren't // being propagated to any dependencies. // so we can put the deps to exports and drop deps here. exports.Append(deps) // The non-empty deps here are unnecessary as deps on the java_library // since they aren't being propagated to any dependencies. // So we can drop deps here. deps = bazel.LabelListAttribute{} } else { ctx.ModuleErrorf("Module has direct dependencies but no sources. Bazel will not allow this.") } } var props bazel.BazelTargetModuleProperties attrs := &javaLibraryAttributes{ Loading