@@ -148,6 +148,7 @@ pub struct SpirvBuilder {
148
148
print_metadata : MetadataPrintout ,
149
149
release : bool ,
150
150
target : String ,
151
+ deny_warnings : bool ,
151
152
bindless : bool ,
152
153
multimodule : bool ,
153
154
name_variables : bool ,
@@ -170,6 +171,7 @@ impl SpirvBuilder {
170
171
print_metadata : MetadataPrintout :: Full ,
171
172
release : true ,
172
173
target : target. into ( ) ,
174
+ deny_warnings : false ,
173
175
bindless : false ,
174
176
multimodule : false ,
175
177
name_variables : false ,
@@ -191,6 +193,11 @@ impl SpirvBuilder {
191
193
self
192
194
}
193
195
196
+ pub fn deny_warnings ( mut self , v : bool ) -> Self {
197
+ self . deny_warnings = v;
198
+ self
199
+ }
200
+
194
201
/// Run the compiler in bindless mode, this flag is in preparation for the full feature
195
202
/// and it's expected to be the default mode going forward
196
203
pub fn bindless ( mut self , v : bool ) -> Self {
@@ -431,12 +438,19 @@ fn invoke_rustc(builder: &SpirvBuilder) -> Result<PathBuf, SpirvBuilderError> {
431
438
format ! ( " -C target-feature={}" , target_features. join( "," ) )
432
439
} ;
433
440
441
+ let deny_warnings = if builder. deny_warnings {
442
+ " -D warnings"
443
+ } else {
444
+ ""
445
+ } ;
446
+
434
447
//FIXME: reintroduce v0 mangling, see issue #642
435
448
let rustflags = format ! (
436
- "-Z codegen-backend={} -Zsymbol-mangling-version=legacy{}{}" ,
449
+ "-Z codegen-backend={} -Zsymbol-mangling-version=legacy{}{}{} " ,
437
450
rustc_codegen_spirv. display( ) ,
438
451
feature_flag,
439
452
llvm_args,
453
+ deny_warnings,
440
454
) ;
441
455
442
456
let mut cargo = Command :: new ( "cargo" ) ;
0 commit comments