args.remove(n);
}
+ if let Some(s) = env::var_os("RUSTC_ERROR_FORMAT") {
+ args.push("--error-format".into());
+ args.push(s);
+ }
+
// Detect whether or not we're a build script depending on whether --target
// is passed (a bit janky...)
let target = args.windows(2)
if let Some(target_linker) = self.build.linker(target) {
cargo.env("RUSTC_TARGET_LINKER", target_linker);
}
+ if let Some(ref error_format) = self.config.rustc_error_format {
+ cargo.env("RUSTC_ERROR_FORMAT", error_format);
+ }
if cmd != "build" && cmd != "check" {
cargo.env("RUSTDOC_LIBDIR", self.rustc_libdir(self.compiler(2, self.build.build)));
}
pub profiler: bool,
pub ignore_git: bool,
pub exclude: Vec<PathBuf>,
+ pub rustc_error_format: Option<String>,
pub run_host_only: bool,
config.test_miri = false;
config.rust_codegen_backends = vec![INTERNER.intern_str("llvm")];
+ config.rustc_error_format = flags.rustc_error_format;
config.on_fail = flags.on_fail;
config.stage = flags.stage;
config.src = flags.src;
pub cmd: Subcommand,
pub incremental: bool,
pub exclude: Vec<PathBuf>,
+ pub rustc_error_format: Option<String>,
}
pub enum Subcommand {
opts.optopt("", "src", "path to the root of the rust checkout", "DIR");
opts.optopt("j", "jobs", "number of jobs to run in parallel", "JOBS");
opts.optflag("h", "help", "print this help message");
+ opts.optflag("", "error-format", "rustc error format");
// fn usage()
let usage = |exit_code: i32, opts: &Options, subcommand_help: &str, extra_help: &str| -> ! {
verbose: matches.opt_count("verbose"),
stage,
on_fail: matches.opt_str("on-fail"),
+ rustc_error_format: matches.opt_str("error-format"),
keep_stage: matches.opt_str("keep-stage").map(|j| j.parse().unwrap()),
build: matches.opt_str("build").map(|s| INTERNER.intern_string(s)),
host: split(matches.opt_strs("host"))