diff options
| author | 2022-04-08 23:27:24 +0000 | |
|---|---|---|
| committer | 2022-04-08 23:27:24 +0000 | |
| commit | 311f9a2c99aae47ef7a9e9b8f8c2fe3a3cd247fe (patch) | |
| tree | f050b28e7c7a4cb124ddf72359fd3806987ca1f7 | |
| parent | 6243bf5ca4e7d8cf1f14a0ab4af814f5cf1f88c4 (diff) | |
| parent | af8e9c73e661f75bb86740bd38d4fd112b3e8a4e (diff) | |
Merge "convert logtags in java srcs" am: b6e1614272 am: af8e9c73e6
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2042847
Change-Id: Ifb620a0dc2c6077f800ce9a8e587a1f8ee2484ad
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | bp2build/java_library_conversion_test.go | 32 | ||||
| -rw-r--r-- | java/java.go | 31 |
2 files changed, 60 insertions, 3 deletions
diff --git a/bp2build/java_library_conversion_test.go b/bp2build/java_library_conversion_test.go index 4b75e3b80..ccc52ef12 100644 --- a/bp2build/java_library_conversion_test.go +++ b/bp2build/java_library_conversion_test.go @@ -219,3 +219,35 @@ func TestJavaLibraryErrorproneJavacflagsErrorproneDisabledManually(t *testing.T) }, }) } + +func TestJavaLibraryLogTags(t *testing.T) { + runJavaLibraryTestCase(t, bp2buildTestCase{ + description: "Java library - logtags creates separate dependency", + moduleTypeUnderTest: "java_library", + moduleTypeUnderTestFactory: java.LibraryFactory, + blueprint: `java_library { + name: "example_lib", + srcs: [ + "a.java", + "b.java", + "a.logtag", + "b.logtag", + ], + bazel_module: { bp2build_available: true }, +}`, + expectedBazelTargets: []string{ + makeBazelTarget("event_log_tags", "example_lib_logtags", attrNameToString{ + "srcs": `[ + "a.logtag", + "b.logtag", + ]`, + }), + makeBazelTarget("java_library", "example_lib", attrNameToString{ + "srcs": `[ + "a.java", + "b.java", + ":example_lib_logtags", + ]`, + }), + }}) +} diff --git a/java/java.go b/java/java.go index 713fe9492..b34d6de8a 100644 --- a/java/java.go +++ b/java/java.go @@ -2041,6 +2041,10 @@ type javaDependencyLabels struct { // and also separates dependencies into dynamic dependencies and static dependencies. // Each corresponding Bazel target type, can have a different method for handling // dynamic vs. static dependencies, and so these are returned to the calling function. +type eventLogTagsAttributes struct { + Srcs bazel.LabelListAttribute +} + func (m *Library) convertLibraryAttrsBp2Build(ctx android.TopDownMutatorContext) (*javaCommonAttributes, *javaDependencyLabels) { var srcs bazel.LabelListAttribute archVariantProps := m.GetArchVariantProperties(ctx, &CommonProperties{}) @@ -2055,11 +2059,32 @@ func (m *Library) convertLibraryAttrsBp2Build(ctx android.TopDownMutatorContext) javaSrcPartition := "java" protoSrcPartition := "proto" + logtagSrcPartition := "logtag" srcPartitions := bazel.PartitionLabelListAttribute(ctx, &srcs, bazel.LabelPartitions{ - javaSrcPartition: bazel.LabelPartition{Extensions: []string{".java"}, Keep_remainder: true}, - protoSrcPartition: android.ProtoSrcLabelPartition, + javaSrcPartition: bazel.LabelPartition{Extensions: []string{".java"}, Keep_remainder: true}, + logtagSrcPartition: bazel.LabelPartition{Extensions: []string{".logtags", ".logtag"}}, + protoSrcPartition: android.ProtoSrcLabelPartition, }) + javaSrcs := srcPartitions[javaSrcPartition] + + var logtagsSrcs bazel.LabelList + if !srcPartitions[logtagSrcPartition].IsEmpty() { + logtagsLibName := m.Name() + "_logtags" + logtagsSrcs = bazel.MakeLabelList([]bazel.Label{{Label: ":" + logtagsLibName}}) + ctx.CreateBazelTargetModule( + bazel.BazelTargetModuleProperties{ + Rule_class: "event_log_tags", + Bzl_load_location: "//build/make/tools:event_log_tags.bzl", + }, + android.CommonAttributes{Name: logtagsLibName}, + &eventLogTagsAttributes{ + Srcs: srcPartitions[logtagSrcPartition], + }, + ) + } + javaSrcs.Append(bazel.MakeLabelListAttribute(logtagsSrcs)) + var javacopts []string if m.properties.Javacflags != nil { javacopts = append(javacopts, m.properties.Javacflags...) @@ -2071,7 +2096,7 @@ func (m *Library) convertLibraryAttrsBp2Build(ctx android.TopDownMutatorContext) } commonAttrs := &javaCommonAttributes{ - Srcs: srcPartitions[javaSrcPartition], + Srcs: javaSrcs, Plugins: bazel.MakeLabelListAttribute( android.BazelLabelForModuleDeps(ctx, m.properties.Plugins), ), |