From 9cc801ab7af27684c190645f6fd0f9db8f798e15 Mon Sep 17 00:00:00 2001 From: Matthew Maurer Date: Tue, 2 Aug 2022 16:57:30 +0000 Subject: [PATCH] Revert^2 "rust: Only allow bindgen to produce `rlib`s." b983c8971bc02c15897c198bca15284579a378ae Change-Id: Ic82433885f7932be8cfe65433330527214807684 --- rust/bindgen.go | 10 +++++++++- rust/protobuf.go | 2 +- rust/source_provider.go | 5 ++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/rust/bindgen.go b/rust/bindgen.go index 72cc894cc..0199d3a37 100644 --- a/rust/bindgen.go +++ b/rust/bindgen.go @@ -299,7 +299,15 @@ func NewRustBindgen(hod android.HostOrDeviceSupported) (*Module, *bindgenDecorat ClangProperties: cc.RustBindgenClangProperties{}, } - module := NewSourceProviderModule(hod, bindgen, false) + module := NewSourceProviderModule(hod, bindgen, false, true) + + android.AddLoadHook(module, func(ctx android.LoadHookContext) { + type stub_props struct { + Visibility []string + } + props := &stub_props{[]string{":__subpackages__"}} + ctx.PrependProperties(props) + }) return module, bindgen } diff --git a/rust/protobuf.go b/rust/protobuf.go index 9fe27c4c9..88e80fe35 100644 --- a/rust/protobuf.go +++ b/rust/protobuf.go @@ -238,7 +238,7 @@ func NewRustProtobuf(hod android.HostOrDeviceSupported) (*Module, *protobufDecor Properties: ProtobufProperties{}, } - module := NewSourceProviderModule(hod, protobuf, false) + module := NewSourceProviderModule(hod, protobuf, false, false) return module, protobuf } diff --git a/rust/source_provider.go b/rust/source_provider.go index 7719611d5..4f8d22b1f 100644 --- a/rust/source_provider.go +++ b/rust/source_provider.go @@ -65,9 +65,12 @@ func NewSourceProvider() *BaseSourceProvider { } } -func NewSourceProviderModule(hod android.HostOrDeviceSupported, sourceProvider SourceProvider, enableLints bool) *Module { +func NewSourceProviderModule(hod android.HostOrDeviceSupported, sourceProvider SourceProvider, enableLints bool, rlibOnly bool) *Module { _, library := NewRustLibrary(hod) library.BuildOnlyRust() + if rlibOnly { + library.BuildOnlyRlib() + } library.sourceProvider = sourceProvider module := newModule(hod, android.MultilibBoth)