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{