Merge changes from topic "import-sdk-version-none" into main am: a815d9bf79

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

Change-Id: I7bb683264451e783bef427965adea3bec1c733d4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot
2023-10-18 17:49:31 +00:00
committed by Automerger Merge Worker
2 changed files with 64 additions and 39 deletions

View File

@@ -2970,6 +2970,10 @@ func (m *Library) convertLibraryAttrsBp2Build(ctx android.Bp2buildMutatorContext
// TODO(b/297356582): handle core_platform in bp2build
ctx.MarkBp2buildUnconvertible(bp2build_metrics_proto.UnconvertedReasonType_PROPERTY_UNSUPPORTED, "sdk_version core_platform")
return &javaCommonAttributes{}, &bp2BuildJavaInfo{}, false
} else if proptools.String(m.deviceProperties.Sdk_version) == "none" {
// TODO(b/297356703): handle system_modules
ctx.MarkBp2buildUnconvertible(bp2build_metrics_proto.UnconvertedReasonType_PROPERTY_UNSUPPORTED, "sdk_version none")
return &javaCommonAttributes{}, &bp2BuildJavaInfo{}, false
}
archVariantProps := m.GetArchVariantProperties(ctx, &CommonProperties{})
@@ -3403,9 +3407,14 @@ func createLibraryTarget(ctx android.Bp2buildMutatorContext, libInfo libraryCrea
return libName
}
type bazelJavaImportAttributes struct {
Jars bazel.LabelListAttribute
Exports bazel.LabelListAttribute
type importAttributes struct {
Jars bazel.LabelListAttribute
Exports bazel.LabelListAttribute
Neverlink *bool
}
type filegroupAttrs struct {
Srcs bazel.LabelListAttribute
}
// java_import bp2Build converter.
@@ -3421,28 +3430,36 @@ func (i *Import) ConvertWithBp2build(ctx android.Bp2buildMutatorContext) {
}
}
attrs := &bazelJavaImportAttributes{
Jars: jars,
name := android.RemoveOptionalPrebuiltPrefix(i.Name())
filegroupTargetName := name + "-jars"
ctx.CreateBazelTargetModule(
bazel.BazelTargetModuleProperties{
Rule_class: "filegroup",
Bzl_load_location: "//build/bazel/rules:filegroup.bzl",
},
android.CommonAttributes{Name: filegroupTargetName},
&filegroupAttrs{
Srcs: jars,
},
)
attrs := &importAttributes{
Jars: bazel.MakeSingleLabelListAttribute(bazel.Label{Label: ":" + filegroupTargetName}),
}
props := bazel.BazelTargetModuleProperties{
Rule_class: "java_import",
Bzl_load_location: "//build/bazel/rules/java:import.bzl",
}
name := android.RemoveOptionalPrebuiltPrefix(i.Name())
ctx.CreateBazelTargetModule(props, android.CommonAttributes{Name: name}, attrs)
neverlink := true
neverlinkAttrs := &javaLibraryAttributes{
Neverlink: bazel.BoolAttribute{Value: &neverlink},
Exports: bazel.MakeSingleLabelListAttribute(bazel.Label{Label: ":" + name}),
javaCommonAttributes: &javaCommonAttributes{
Sdk_version: bazel.StringAttribute{Value: proptools.StringPtr("none")},
},
neverlinkAttrs := &importAttributes{
Jars: attrs.Jars,
Neverlink: proptools.BoolPtr(true),
}
ctx.CreateBazelTargetModule(
javaLibraryBazelTargetModuleProperties(),
props,
android.CommonAttributes{Name: name + "-neverlink"},
neverlinkAttrs)
}