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)