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 java/java.go +10 −20 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,17 +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 drop deps here. // 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
java/java.go +10 −20 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,17 +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 drop deps here. // 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