diff --git a/rust/protobuf.go b/rust/protobuf.go index 8d231bb4d..c80e5f4fb 100644 --- a/rust/protobuf.go +++ b/rust/protobuf.go @@ -56,6 +56,7 @@ type ProtobufProperties struct { // Use protobuf version 3.x. This will be deleted once we migrate all current users // of protobuf off of 2.x. + // ludovicb@: DEPRECATED, to be removed Use_protobuf3 *bool // List of exported include paths containing proto files for dependent rust_protobuf modules. @@ -74,10 +75,6 @@ type protobufDecorator struct { protoFlags android.ProtoFlags } -func (proto *protobufDecorator) useProtobuf3() bool { - return Bool(proto.Properties.Use_protobuf3) -} - func (proto *protobufDecorator) GenerateSource(ctx ModuleContext, deps PathDeps) android.Path { var protoFlags android.ProtoFlags var grpcProtoFlags android.ProtoFlags @@ -87,12 +84,7 @@ func (proto *protobufDecorator) GenerateSource(ctx ModuleContext, deps PathDeps) protoFiles := android.PathsForModuleSrc(ctx, proto.Properties.Protos) grpcFiles := android.PathsForModuleSrc(ctx, proto.Properties.Grpc_protos) - // For now protobuf2 (the deprecated version) remains the default. This will change in the - // future as we update the various users. - protoPluginPath := ctx.Config().HostToolPath(ctx, "protoc-gen-rust-deprecated") - if proto.useProtobuf3() == true { - protoPluginPath = ctx.Config().HostToolPath(ctx, "protoc-gen-rust") - } + protoPluginPath := ctx.Config().HostToolPath(ctx, "protoc-gen-rust") commonProtoFlags = append(commonProtoFlags, defaultProtobufFlags...) commonProtoFlags = append(commonProtoFlags, proto.Properties.Proto_flags...) @@ -216,13 +208,7 @@ func (proto *protobufDecorator) genModFileContents() string { lines = append( lines, "pub mod empty {", - " pub use protobuf::well_known_types::Empty;", - "}", - "pub mod wrappers {", - " pub use protobuf::well_known_types::{", - " DoubleValue, FloatValue, Int64Value, UInt64Value, Int32Value, UInt32Value,", - " BoolValue, StringValue, BytesValue", - " };", + " pub use protobuf::well_known_types::empty::Empty;", "}") } @@ -235,20 +221,10 @@ func (proto *protobufDecorator) SourceProviderProps() []interface{} { func (proto *protobufDecorator) SourceProviderDeps(ctx DepsContext, deps Deps) Deps { deps = proto.BaseSourceProvider.SourceProviderDeps(ctx, deps) - useProtobuf3 := proto.useProtobuf3() - if useProtobuf3 == true { - deps.Rustlibs = append(deps.Rustlibs, "libprotobuf") - } else { - deps.Rustlibs = append(deps.Rustlibs, "libprotobuf_deprecated") - } + deps.Rustlibs = append(deps.Rustlibs, "libprotobuf") deps.HeaderLibs = append(deps.SharedLibs, proto.Properties.Header_libs...) if len(proto.Properties.Grpc_protos) > 0 { - if useProtobuf3 == true { - ctx.PropertyErrorf("protos", "rust_protobuf with grpc_protos defined must currently use "+ - "`use_protobuf3: false,` in the Android.bp file. This is temporary until the "+ - "grpcio crate is updated to use the current version of the protobuf crate.") - } deps.Rustlibs = append(deps.Rustlibs, "libgrpcio", "libfutures") deps.HeaderLibs = append(deps.HeaderLibs, "libprotobuf-cpp-full") } diff --git a/rust/protobuf_test.go b/rust/protobuf_test.go index 9dca0290f..b375a6463 100644 --- a/rust/protobuf_test.go +++ b/rust/protobuf_test.go @@ -21,54 +21,6 @@ import ( "android/soong/android" ) -func TestRustProtobuf(t *testing.T) { - ctx := testRust(t, ` - rust_protobuf { - name: "librust_proto", - protos: ["buf.proto", "proto.proto"], - crate_name: "rust_proto", - source_stem: "buf", - shared_libs: ["libfoo_shared"], - static_libs: ["libfoo_static"], - } - cc_library_shared { - name: "libfoo_shared", - export_include_dirs: ["shared_include"], - } - cc_library_static { - name: "libfoo_static", - export_include_dirs: ["static_include"], - } - `) - // Check that libprotobuf is added as a dependency. - librust_proto := ctx.ModuleForTests("librust_proto", "android_arm64_armv8-a_dylib").Module().(*Module) - if !android.InList("libprotobuf_deprecated", librust_proto.Properties.AndroidMkDylibs) { - t.Errorf("libprotobuf_deprecated dependency missing for rust_protobuf (dependency missing from AndroidMkDylibs)") - } - - // Make sure the correct plugin is being used. - librust_proto_out := ctx.ModuleForTests("librust_proto", "android_arm64_armv8-a_source").Output("buf.rs") - cmd := librust_proto_out.RuleParams.Command - if w := "protoc-gen-rust-deprecated"; !strings.Contains(cmd, w) { - t.Errorf("expected %q in %q", w, cmd) - } - - // Check exported include directories - if w := "-Ishared_include"; !strings.Contains(cmd, w) { - t.Errorf("expected %q in %q", w, cmd) - } - if w := "-Istatic_include"; !strings.Contains(cmd, w) { - t.Errorf("expected %q in %q", w, cmd) - } - - // Check proto.rs, the second protobuf, is listed as an output - librust_proto_outputs := ctx.ModuleForTests("librust_proto", "android_arm64_armv8-a_source").AllOutputs() - if android.InList("proto.rs", librust_proto_outputs) { - t.Errorf("rust_protobuf is not producing multiple outputs; expected 'proto.rs' in list, got: %#v ", - librust_proto_outputs) - } -} - func TestRustProtobuf3(t *testing.T) { ctx := testRust(t, ` rust_protobuf { diff --git a/rust/testing.go b/rust/testing.go index 3fe751e17..0b34c9732 100644 --- a/rust/testing.go +++ b/rust/testing.go @@ -132,12 +132,6 @@ func GatherRequiredDepsForTest() string { srcs: ["foo.rs"], host_supported: true, } - rust_library { - name: "libprotobuf_deprecated", - crate_name: "protobuf", - srcs: ["foo.rs"], - host_supported: true, - } rust_library { name: "libgrpcio", crate_name: "grpcio",