@@ -252,14 +252,24 @@ pub fn main() {
252
252
exit ( rustc_driver:: catch_with_exit_code ( move || {
253
253
let mut orig_args: Vec < String > = env:: args ( ) . collect ( ) ;
254
254
255
+ let sys_root_env = std:: env:: var ( "SYSROOT" ) . ok ( ) ;
256
+ let pass_sysroot_env_if_given = |args : & mut Vec < String > , sys_root_env| {
257
+ if let Some ( sys_root) = sys_root_env {
258
+ args. extend ( vec ! [ "--sysroot" . into( ) , sys_root] ) ;
259
+ } ;
260
+ } ;
261
+
255
262
// make "clippy-driver --rustc" work like a subcommand that passes further args to "rustc"
256
263
// for example `clippy-driver --rustc --version` will print the rustc version that clippy-driver
257
264
// uses
258
265
if let Some ( pos) = orig_args. iter ( ) . position ( |arg| arg == "--rustc" ) {
259
266
orig_args. remove ( pos) ;
260
267
orig_args[ 0 ] = "rustc" . to_string ( ) ;
261
268
262
- return rustc_driver:: RunCompiler :: new ( & orig_args, & mut DefaultCallbacks ) . run ( ) ;
269
+ let mut args: Vec < String > = orig_args. clone ( ) ;
270
+ pass_sysroot_env_if_given ( & mut args, sys_root_env) ;
271
+
272
+ return rustc_driver:: RunCompiler :: new ( & args, & mut DefaultCallbacks ) . run ( ) ;
263
273
}
264
274
265
275
if orig_args. iter ( ) . any ( |a| a == "--version" || a == "-V" ) {
@@ -282,6 +292,9 @@ pub fn main() {
282
292
exit ( 0 ) ;
283
293
}
284
294
295
+ let mut args: Vec < String > = orig_args. clone ( ) ;
296
+ pass_sysroot_env_if_given ( & mut args, sys_root_env) ;
297
+
285
298
let mut no_deps = false ;
286
299
let clippy_args_var = env:: var ( "CLIPPY_ARGS" ) . ok ( ) ;
287
300
let clippy_args = clippy_args_var
@@ -310,11 +323,10 @@ pub fn main() {
310
323
311
324
let clippy_enabled = !cap_lints_allow && ( !no_deps || in_primary_package) ;
312
325
if clippy_enabled {
313
- let mut args: Vec < String > = orig_args. clone ( ) ;
314
326
args. extend ( clippy_args) ;
315
327
rustc_driver:: RunCompiler :: new ( & args, & mut ClippyCallbacks { clippy_args_var } ) . run ( )
316
328
} else {
317
- rustc_driver:: RunCompiler :: new ( & orig_args , & mut RustcCallbacks { clippy_args_var } ) . run ( )
329
+ rustc_driver:: RunCompiler :: new ( & args , & mut RustcCallbacks { clippy_args_var } ) . run ( )
318
330
}
319
331
} ) )
320
332
}
0 commit comments