cmd.arg("-Z").arg("verify-llvm-ir");
}
- let color = match env::var("RUSTC_COLOR") {
- Ok(s) => usize::from_str(&s).expect("RUSTC_COLOR should be an integer"),
- Err(_) => 0,
- };
-
- if color != 0 {
- cmd.arg("--color=always");
- }
-
if env::var_os("RUSTC_DENY_WARNINGS").is_some() && env::var_os("RUSTC_EXTERNAL_TOOL").is_none()
{
cmd.arg("-Dwarnings");
use filetime::FileTime;
use serde_json;
-use util::{exe, libdir, is_dylib, CiEnv};
+use util::{exe, libdir, is_dylib};
use {Compiler, Mode, GitRepo};
use native;
}
}
-// Avoiding a dependency on winapi to keep compile times down
-#[cfg(unix)]
-fn stderr_isatty() -> bool {
- use libc;
- unsafe { libc::isatty(libc::STDERR_FILENO) != 0 }
-}
-#[cfg(windows)]
-fn stderr_isatty() -> bool {
- type DWORD = u32;
- type BOOL = i32;
- type HANDLE = *mut u8;
- const STD_ERROR_HANDLE: DWORD = -12i32 as DWORD;
- extern "system" {
- fn GetStdHandle(which: DWORD) -> HANDLE;
- fn GetConsoleMode(hConsoleHandle: HANDLE, lpMode: *mut DWORD) -> BOOL;
- }
- unsafe {
- let handle = GetStdHandle(STD_ERROR_HANDLE);
- let mut out = 0;
- GetConsoleMode(handle, &mut out) != 0
- }
-}
-
pub fn run_cargo(builder: &Builder,
cargo: &mut Command,
tail_args: Vec<String>,
cargo.arg("--message-format").arg("json")
.stdout(Stdio::piped());
- if stderr_isatty() && builder.ci_env == CiEnv::None &&
- // if the terminal is reported as dumb, then we don't want to enable color for rustc
- env::var_os("TERM").map(|t| t != *"dumb").unwrap_or(true) {
- // since we pass message-format=json to cargo, we need to tell the rustc
- // wrapper to give us colored output if necessary. This is because we
- // only want Cargo's JSON output, not rustcs.
- cargo.env("RUSTC_COLOR", "1");
- }
-
for arg in tail_args {
cargo.arg(arg);
}