diff options
| author | bors <bors@rust-lang.org> | 2019-07-15 05:20:34 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2019-07-15 05:20:34 +0000 |
| commit | 48b50e80b19fa8ccb26ebb4fba26b5035f153fed (patch) | |
| tree | ef3f435095816ac8bb149b3f9cb6ea18ead8afcb /src | |
| parent | 36fb64639401d815f005dba1d437dd1a31c3a5e8 (diff) | |
| parent | ce2a7b0160ea8220249d73a386edd0ca85015f66 (diff) | |
| download | rust-48b50e80b19fa8ccb26ebb4fba26b5035f153fed.tar.gz rust-48b50e80b19fa8ccb26ebb4fba26b5035f153fed.zip | |
Auto merge of #3418 - phansch:add_travis_windows_build, r=me,flip1995
Fix Travis Windows build Closes #3306
Diffstat (limited to 'src')
| -rw-r--r-- | src/driver.rs | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/driver.rs b/src/driver.rs index e6b04bf0cfd..545c43f9a45 100644 --- a/src/driver.rs +++ b/src/driver.rs @@ -12,7 +12,7 @@ extern crate rustc_plugin; use rustc_interface::interface; use rustc_tools_util::*; -use std::path::Path; +use std::path::{Path, PathBuf}; use std::process::{exit, Command}; mod lintlist; @@ -270,12 +270,19 @@ pub fn main() { let sys_root_arg = arg_value(&orig_args, "--sysroot", |_| true); let have_sys_root_arg = sys_root_arg.is_some(); let sys_root = sys_root_arg - .map(std::string::ToString::to_string) - .or_else(|| std::env::var("SYSROOT").ok()) + .map(PathBuf::from) + .or_else(|| std::env::var("SYSROOT").ok().map(PathBuf::from)) .or_else(|| { let home = option_env!("RUSTUP_HOME").or(option_env!("MULTIRUST_HOME")); let toolchain = option_env!("RUSTUP_TOOLCHAIN").or(option_env!("MULTIRUST_TOOLCHAIN")); - home.and_then(|home| toolchain.map(|toolchain| format!("{}/toolchains/{}", home, toolchain))) + home.and_then(|home| { + toolchain.map(|toolchain| { + let mut path = PathBuf::from(home); + path.push("toolchains"); + path.push(toolchain); + path + }) + }) }) .or_else(|| { Command::new("rustc") @@ -284,9 +291,10 @@ pub fn main() { .output() .ok() .and_then(|out| String::from_utf8(out.stdout).ok()) - .map(|s| s.trim().to_owned()) + .map(|s| PathBuf::from(s.trim())) }) - .or_else(|| option_env!("SYSROOT").map(String::from)) + .or_else(|| option_env!("SYSROOT").map(PathBuf::from)) + .map(|pb| pb.to_string_lossy().to_string()) .expect("need to specify SYSROOT env var during clippy compilation, or use rustup or multirust"); // Setting RUSTC_WRAPPER causes Cargo to pass 'rustc' as the first argument. |
