From efdd7aca765e1c7a4c97a8d61f4ff0c6e80d28f9 Mon Sep 17 00:00:00 2001 From: Chih-Hung Hsieh Date: Thu, 26 Sep 2019 18:59:27 -0700 Subject: [PATCH] Deny rust warnings by default. * "-D warnings" means "deny all warnings" and make them errors. * Modules with warnings should fix all warnings or use deny_warnings: false Bug: 141699953 Test: mm in projects with Rust modules Change-Id: I6310dee8e34b7780937e8fc1834016a04a943a2f --- rust/compiler.go | 9 ++++++++- rust/config/global.go | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/rust/compiler.go b/rust/compiler.go index f45744b4d..6c603df8c 100644 --- a/rust/compiler.go +++ b/rust/compiler.go @@ -25,7 +25,8 @@ import ( func NewBaseCompiler(dir, dir64 string) *baseCompiler { return &baseCompiler{ Properties: BaseCompilerProperties{ - Edition: &config.DefaultEdition, + Edition: &config.DefaultEdition, + Deny_warnings: config.DefaultDenyWarnings, }, dir: dir, dir64: dir64, @@ -33,6 +34,9 @@ func NewBaseCompiler(dir, dir64 string) *baseCompiler { } type BaseCompilerProperties struct { + // whether to pass "-D warnings" to rustc. Defaults to true. + Deny_warnings *bool + // flags to pass to rustc Flags []string `android:"path,arch_variant"` @@ -109,6 +113,9 @@ func (compiler *baseCompiler) featuresToFlags(features []string) []string { func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags) Flags { + if Bool(compiler.Properties.Deny_warnings) { + flags.RustFlags = append(flags.RustFlags, "-D warnings") + } flags.RustFlags = append(flags.RustFlags, compiler.Properties.Flags...) flags.RustFlags = append(flags.RustFlags, compiler.featuresToFlags(compiler.Properties.Features)...) flags.RustFlags = append(flags.RustFlags, "--edition="+*compiler.Properties.Edition) diff --git a/rust/config/global.go b/rust/config/global.go index cec5a74f8..c66c3c113 100644 --- a/rust/config/global.go +++ b/rust/config/global.go @@ -17,6 +17,8 @@ package config import ( "strings" + "github.com/google/blueprint/proptools" + "android/soong/android" _ "android/soong/cc/config" ) @@ -33,6 +35,8 @@ var ( "libtest", } + DefaultDenyWarnings = proptools.BoolPtr(true) + deviceGlobalRustFlags = []string{} deviceGlobalLinkFlags = []string{