From 31f1bb80efe196f2340ec88a6cc374963e7aa7b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thi=C3=A9baud=20Weksteen?= Date: Thu, 27 Aug 2020 13:37:29 +0200 Subject: [PATCH] rust: add ccToolchain to Module The cc toolchain information is required when using cc.Stripper. Move to a Module method to avoid importing the cc package everywhere. Test: m nothing Bug: 153430439 Change-Id: I497dcdff4e767ecb8b8688c73cf88850c302683d --- rust/bindgen.go | 5 ++--- rust/rust.go | 5 +++++ rust/source_provider.go | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/rust/bindgen.go b/rust/bindgen.go index 9b09e616e..3f7a6ce3d 100644 --- a/rust/bindgen.go +++ b/rust/bindgen.go @@ -21,7 +21,6 @@ import ( "github.com/google/blueprint/proptools" "android/soong/android" - ccConfig "android/soong/cc/config" ) var ( @@ -92,8 +91,8 @@ type bindgenDecorator struct { Properties BindgenProperties } -func (b *bindgenDecorator) GenerateSource(ctx android.ModuleContext, deps PathDeps) android.Path { - ccToolchain := ccConfig.FindToolchain(ctx.Os(), ctx.Arch()) +func (b *bindgenDecorator) GenerateSource(ctx ModuleContext, deps PathDeps) android.Path { + ccToolchain := ctx.RustModule().ccToolchain(ctx) var cflags []string var implicits android.Paths diff --git a/rust/rust.go b/rust/rust.go index 68dc5a08b..90329502d 100644 --- a/rust/rust.go +++ b/rust/rust.go @@ -23,6 +23,7 @@ import ( "android/soong/android" "android/soong/cc" + cc_config "android/soong/cc/config" "android/soong/rust/config" ) @@ -656,6 +657,10 @@ func (mod *Module) toolchain(ctx android.BaseModuleContext) config.Toolchain { return mod.cachedToolchain } +func (mod *Module) ccToolchain(ctx android.BaseModuleContext) cc_config.Toolchain { + return cc_config.FindToolchain(ctx.Os(), ctx.Arch()) +} + func (d *Defaults) GenerateAndroidBuildActions(ctx android.ModuleContext) { } diff --git a/rust/source_provider.go b/rust/source_provider.go index e168718e4..755a369a7 100644 --- a/rust/source_provider.go +++ b/rust/source_provider.go @@ -38,7 +38,7 @@ type BaseSourceProvider struct { var _ SourceProvider = (*BaseSourceProvider)(nil) type SourceProvider interface { - GenerateSource(ctx android.ModuleContext, deps PathDeps) android.Path + GenerateSource(ctx ModuleContext, deps PathDeps) android.Path Srcs() android.Paths SourceProviderProps() []interface{} SourceProviderDeps(ctx DepsContext, deps Deps) Deps @@ -49,7 +49,7 @@ func (sp *BaseSourceProvider) Srcs() android.Paths { return android.Paths{sp.OutputFile} } -func (sp *BaseSourceProvider) GenerateSource(ctx android.ModuleContext, deps PathDeps) android.Path { +func (sp *BaseSourceProvider) GenerateSource(ctx ModuleContext, deps PathDeps) android.Path { panic("BaseSourceProviderModule does not implement GenerateSource()") }