Merge "Add bp2build for rust_protobuf module" into main am: 0c0b0d6857
am: 0c35a98fed
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2757770 Change-Id: Icdeb8c60f170879d9fbd0ec8b4adebabbaafac6a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -27,7 +27,7 @@ func runRustProtobufTestCase(t *testing.T, tc Bp2buildTestCase) {
|
||||
|
||||
func registerRustProtobufModuleTypes(ctx android.RegistrationContext) {
|
||||
ctx.RegisterModuleType("rust_protobuf_host", rust.RustProtobufHostFactory)
|
||||
|
||||
ctx.RegisterModuleType("rust_protobuf", rust.RustProtobufHostFactory)
|
||||
}
|
||||
|
||||
func TestRustProtobufHostTestCase(t *testing.T) {
|
||||
@@ -58,3 +58,32 @@ rust_protobuf_host {
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
func TestRustProtobufTestCase(t *testing.T) {
|
||||
runRustProtobufTestCase(t, Bp2buildTestCase{
|
||||
Dir: "external/rust/crates/foo",
|
||||
Blueprint: "",
|
||||
Filesystem: map[string]string{
|
||||
"external/rust/crates/foo/src/lib.rs": "",
|
||||
"external/rust/crates/foo/src/helper.rs": "",
|
||||
"external/rust/crates/foo/Android.bp": `
|
||||
rust_protobuf {
|
||||
name: "libfoo",
|
||||
crate_name: "foo",
|
||||
protos: ["src/foo.proto"],
|
||||
bazel_module: { bp2build_available: true },
|
||||
}
|
||||
`,
|
||||
},
|
||||
ExpectedBazelTargets: []string{
|
||||
makeBazelTargetHostOrDevice("proto_library", "libfoo_proto", AttrNameToString{
|
||||
"srcs": `["src/foo.proto"]`,
|
||||
}, android.HostSupported),
|
||||
makeBazelTargetHostOrDevice("rust_proto_library", "libfoo", AttrNameToString{
|
||||
"crate_name": `"foo"`,
|
||||
"deps": `[":libfoo_proto"]`,
|
||||
}, android.HostSupported),
|
||||
},
|
||||
},
|
||||
)
|
||||
}
|
||||
|
@@ -305,7 +305,11 @@ func protoLibraryBp2build(ctx android.Bp2buildMutatorContext, m *Module) {
|
||||
},
|
||||
}
|
||||
|
||||
ctx.CreateBazelTargetModule(
|
||||
// TODO(b/295918553): Remove androidRestriction after rust toolchain for android is checked in.
|
||||
var androidRestriction bazel.BoolAttribute
|
||||
androidRestriction.SetSelectValue(bazel.OsConfigurationAxis, "android", proptools.BoolPtr(false))
|
||||
|
||||
ctx.CreateBazelTargetModuleWithRestrictions(
|
||||
bazel.BazelTargetModuleProperties{
|
||||
Rule_class: "proto_library",
|
||||
},
|
||||
@@ -317,9 +321,10 @@ func protoLibraryBp2build(ctx android.Bp2buildMutatorContext, m *Module) {
|
||||
android.BazelLabelForModuleSrc(ctx, protoFiles),
|
||||
),
|
||||
},
|
||||
androidRestriction,
|
||||
)
|
||||
|
||||
ctx.CreateBazelTargetModule(
|
||||
ctx.CreateBazelTargetModuleWithRestrictions(
|
||||
bazel.BazelTargetModuleProperties{
|
||||
Rule_class: "rust_proto_library",
|
||||
Bzl_load_location: "@rules_rust//proto/protobuf:defs.bzl",
|
||||
@@ -333,5 +338,6 @@ func protoLibraryBp2build(ctx android.Bp2buildMutatorContext, m *Module) {
|
||||
},
|
||||
Deps: protoDeps,
|
||||
},
|
||||
androidRestriction,
|
||||
)
|
||||
}
|
||||
|
@@ -1853,7 +1853,7 @@ func (m *Module) ConvertWithBp2build(ctx android.Bp2buildMutatorContext) {
|
||||
procMacroBp2build(ctx, m)
|
||||
} else if ctx.ModuleType() == "rust_binary_host" {
|
||||
binaryBp2build(ctx, m)
|
||||
} else if ctx.ModuleType() == "rust_protobuf_host" {
|
||||
} else if ctx.ModuleType() == "rust_protobuf_host" || ctx.ModuleType() == "rust_protobuf" {
|
||||
protoLibraryBp2build(ctx, m)
|
||||
} else {
|
||||
ctx.MarkBp2buildUnconvertible(bp2build_metrics_proto.UnconvertedReasonType_TYPE_UNSUPPORTED, "")
|
||||
|
Reference in New Issue
Block a user