diff options
Diffstat (limited to 'java/java.go')
| -rw-r--r-- | java/java.go | 47 | 
1 files changed, 32 insertions, 15 deletions
diff --git a/java/java.go b/java/java.go index 990a084f7..1b9941c4e 100644 --- a/java/java.go +++ b/java/java.go @@ -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)  }  |