diff options
Diffstat (limited to 'rust')
-rw-r--r-- | rust/library.go | 12 | ||||
-rw-r--r-- | rust/prebuilt.go | 2 |
2 files changed, 14 insertions, 0 deletions
diff --git a/rust/library.go b/rust/library.go index 94f5730ea..0ebd7d3b1 100644 --- a/rust/library.go +++ b/rust/library.go @@ -945,6 +945,9 @@ func (libraryTransitionMutator) Split(ctx android.BaseModuleContext) []string { } func (libraryTransitionMutator) OutgoingTransition(ctx android.OutgoingTransitionContext, sourceVariation string) string { + if ctx.DepTag() == android.PrebuiltDepTag { + return sourceVariation + } return "" } @@ -1012,6 +1015,12 @@ func (libraryTransitionMutator) Mutate(ctx android.BottomUpMutatorContext, varia }, sourceDepTag, ctx.ModuleName()) } + + if prebuilt, ok := m.compiler.(*prebuiltLibraryDecorator); ok { + if Bool(prebuilt.Properties.Force_use_prebuilt) && len(prebuilt.prebuiltSrcs()) > 0 { + m.Prebuilt().SetUsePrebuilt(true) + } + } } type libstdTransitionMutator struct{} @@ -1029,6 +1038,9 @@ func (libstdTransitionMutator) Split(ctx android.BaseModuleContext) []string { } func (libstdTransitionMutator) OutgoingTransition(ctx android.OutgoingTransitionContext, sourceVariation string) string { + if ctx.DepTag() == android.PrebuiltDepTag { + return sourceVariation + } return "" } diff --git a/rust/prebuilt.go b/rust/prebuilt.go index e35e510da..41f94238c 100644 --- a/rust/prebuilt.go +++ b/rust/prebuilt.go @@ -30,6 +30,8 @@ type PrebuiltProperties struct { Srcs []string `android:"path,arch_variant"` // directories containing associated rlib dependencies Link_dirs []string `android:"path,arch_variant"` + + Force_use_prebuilt *bool `android:"arch_variant"` } type prebuiltLibraryDecorator struct { |