diff options
author | 2023-11-04 15:13:49 +0000 | |
---|---|---|
committer | 2023-12-15 13:23:33 +0000 | |
commit | 19739bf6a5db5e788f7556063deb0bf8f17da794 (patch) | |
tree | c8d8523ad39623b310fcd325436e576276114432 /rust/protobuf.go | |
parent | a6bc7c87bdcd027e5391792cd0d8c368418f2cf7 (diff) |
Rust protobuf 2->3: Update build system
tldr: remove protobuf2 from Android Rust and upgrade everything to pb3.
These commits update:
- The grpcio rust crate to use protobuf 3
- The build system to always use the new libprotobuf (pb3) instead of the _deprecated variant (for pb2); they also force-enable libprotobuf everywhere, ignoring the use_protobuf3 flag, removes the tests related to pb2
- The following modules, which required syntax changes:
-- packages/modules/Bluetooth
-- device/google/cuttlefish
-- vendor/auto
Bug: 308790516
Test: m rust
Ignore-AOSP-First: must be done in main to upgrade cuttlefish+vendor with the rest all at once
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:7d0783ce22b3d7d369786d4b16067c79c033185b)
Merged-In: I1d07c433aca41ccfe2e710821cf930c413dc12d6
Change-Id: I1d07c433aca41ccfe2e710821cf930c413dc12d6
Diffstat (limited to 'rust/protobuf.go')
-rw-r--r-- | rust/protobuf.go | 32 |
1 files changed, 4 insertions, 28 deletions
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") } |