Add support for java_library proto plugin in bp2build
Test: Added unit test and CI Bug: 303064670 Change-Id: Idb96ac322aafcb6789ea2002b84a6905d5ec488f
This commit is contained in:
parent
0b5a877f21
commit
dbaf6a9dd0
3 changed files with 52 additions and 0 deletions
|
@ -994,6 +994,7 @@ var (
|
|||
"tradefed-result-interfaces",
|
||||
"tradefed-device-build-interfaces",
|
||||
"tradefed-invocation-interfaces",
|
||||
"tradefed-lib-core",
|
||||
}
|
||||
|
||||
Bp2buildModuleTypeAlwaysConvertList = []string{
|
||||
|
|
|
@ -193,3 +193,46 @@ java_library_static {
|
|||
},
|
||||
})
|
||||
}
|
||||
|
||||
func TestJavaProtoPlugin(t *testing.T) {
|
||||
runJavaProtoTestCase(t, Bp2buildTestCase{
|
||||
Description: "java_library proto plugin",
|
||||
StubbedBuildDefinitions: []string{"protoc-gen-test-plugin"},
|
||||
Blueprint: `java_library_static {
|
||||
name: "java-protos",
|
||||
srcs: ["a.proto"],
|
||||
proto: {
|
||||
plugin: "test-plugin",
|
||||
},
|
||||
sdk_version: "current",
|
||||
}
|
||||
|
||||
java_library_static {
|
||||
name: "protoc-gen-test-plugin",
|
||||
}
|
||||
`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("proto_library", "java-protos_proto", AttrNameToString{
|
||||
"srcs": `["a.proto"]`,
|
||||
}),
|
||||
MakeBazelTarget(
|
||||
"java_lite_proto_library",
|
||||
"java-protos_java_proto_lite",
|
||||
AttrNameToString{
|
||||
"deps": `[":java-protos_proto"]`,
|
||||
"plugin": `":protoc-gen-test-plugin"`,
|
||||
"sdk_version": `"current"`,
|
||||
}),
|
||||
MakeBazelTarget("java_library", "java-protos", AttrNameToString{
|
||||
"exports": `[":java-protos_java_proto_lite"]`,
|
||||
"sdk_version": `"current"`,
|
||||
}),
|
||||
MakeNeverlinkDuplicateTargetWithAttrs(
|
||||
"java_library",
|
||||
"java-protos",
|
||||
AttrNameToString{
|
||||
"sdk_version": `"current"`,
|
||||
}),
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -159,6 +159,8 @@ type protoAttributes struct {
|
|||
|
||||
Sdk_version bazel.StringAttribute
|
||||
Java_version bazel.StringAttribute
|
||||
|
||||
Plugin bazel.LabelAttribute
|
||||
}
|
||||
|
||||
func bp2buildProto(ctx android.Bp2buildMutatorContext, m *Module, protoSrcs bazel.LabelListAttribute, AdditionalProtoDeps bazel.LabelListAttribute) *bazel.Label {
|
||||
|
@ -189,12 +191,18 @@ func bp2buildProto(ctx android.Bp2buildMutatorContext, m *Module, protoSrcs baze
|
|||
ctx.PropertyErrorf("proto.type", "cannot handle conversion at this time: %q", typ)
|
||||
}
|
||||
|
||||
plugin := bazel.LabelAttribute{}
|
||||
if m.protoProperties.Proto.Plugin != nil {
|
||||
plugin.SetValue(android.BazelLabelForModuleDepSingle(ctx, "protoc-gen-"+*m.protoProperties.Proto.Plugin))
|
||||
}
|
||||
|
||||
protoAttrs := &protoAttributes{
|
||||
Deps: bazel.MakeLabelListAttribute(protoInfo.Proto_libs),
|
||||
Transitive_deps: bazel.MakeLabelListAttribute(protoInfo.Transitive_proto_libs),
|
||||
Additional_proto_deps: AdditionalProtoDeps,
|
||||
Java_version: bazel.StringAttribute{Value: m.properties.Java_version},
|
||||
Sdk_version: bazel.StringAttribute{Value: m.deviceProperties.Sdk_version},
|
||||
Plugin: plugin,
|
||||
}
|
||||
|
||||
name := m.Name() + suffix
|
||||
|
|
Loading…
Reference in a new issue