From: Dirkjan Ochtman Date: Fri, 13 Apr 2018 17:58:00 +0000 (+0200) Subject: Don't require full Context to build a TargetInfo X-Git-Tag: archive/raspbian/0.35.0-2+rpi1~3^2^2^2^2^2^2^2~22^2~1^2~72^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=eb45a624b5fcdf9132d634c6bb90bba104c1aca8;p=cargo.git Don't require full Context to build a TargetInfo --- diff --git a/src/cargo/core/compiler/context/mod.rs b/src/cargo/core/compiler/context/mod.rs index 33dbb01a1..77ca4cc5f 100644 --- a/src/cargo/core/compiler/context/mod.rs +++ b/src/cargo/core/compiler/context/mod.rs @@ -351,11 +351,11 @@ impl<'a, 'cfg> Context<'a, 'cfg> { _ => true, }; - self.host_info = TargetInfo::new(self, Kind::Host)?; + self.host_info = TargetInfo::new(self.config, &self.build_config, Kind::Host)?; self.target_info = if host_target_same { self.host_info.clone() } else { - TargetInfo::new(self, Kind::Target)? + TargetInfo::new(self.config, &self.build_config, Kind::Target)? }; self.compilation.host_dylib_path = self.host_info.sysroot_libdir.clone(); self.compilation.target_dylib_path = self.target_info.sysroot_libdir.clone(); diff --git a/src/cargo/core/compiler/context/target_info.rs b/src/cargo/core/compiler/context/target_info.rs index c22ab4232..1d1061259 100644 --- a/src/cargo/core/compiler/context/target_info.rs +++ b/src/cargo/core/compiler/context/target_info.rs @@ -3,8 +3,8 @@ use std::collections::hash_map::{Entry, HashMap}; use std::path::PathBuf; use std::str::{self, FromStr}; -use super::{env_args, Context}; -use util::{CargoResult, CargoResultExt, Cfg, ProcessBuilder}; +use super::{env_args, BuildConfig}; +use util::{CargoResult, CargoResultExt, Cfg, Config, ProcessBuilder}; use core::TargetKind; use super::Kind; @@ -51,9 +51,9 @@ impl FileType { } impl TargetInfo { - pub fn new(cx: &Context, kind: Kind) -> CargoResult { - let rustflags = env_args(cx.config, &cx.build_config, None, kind, "RUSTFLAGS")?; - let mut process = cx.config.rustc()?.process(); + pub fn new(config: &Config, build_config: &BuildConfig, kind: Kind) -> CargoResult { + let rustflags = env_args(config, build_config, None, kind, "RUSTFLAGS")?; + let mut process = config.rustc()?.process(); process .arg("-") .arg("--crate-name") @@ -63,7 +63,7 @@ impl TargetInfo { .env_remove("RUST_LOG"); if kind == Kind::Target { - process.arg("--target").arg(&cx.build_config.target_triple()); + process.arg("--target").arg(&build_config.target_triple()); } let crate_type_process = process.clone(); @@ -115,7 +115,7 @@ impl TargetInfo { } else { rustlib.push("lib"); rustlib.push("rustlib"); - rustlib.push(cx.build_config.target_triple()); + rustlib.push(build_config.target_triple()); rustlib.push("lib"); sysroot_libdir = Some(rustlib); }