Merge "convert logtags in java srcs" am: b6e1614272

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2042847

Change-Id: I65b70f5592f8c3f2cfbb5158d3b68bad4502a117
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot 2022-04-08 22:58:07 +00:00 committed by Automerger Merge Worker
commit af8e9c73e6
2 changed files with 60 additions and 3 deletions

View file

@ -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",
]`,
}),
}})
}

View file

@ -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),
),