summaryrefslogtreecommitdiff
path: root/rust
diff options
context:
space:
mode:
Diffstat (limited to 'rust')
-rw-r--r--rust/library.go12
-rw-r--r--rust/prebuilt.go2
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 {