From: Dirkjan Ochtman Date: Wed, 11 Apr 2018 20:50:07 +0000 (+0200) Subject: Hoist Context creation out of compile_targets() X-Git-Tag: archive/raspbian/0.35.0-2+rpi1~3^2^2^2^2^2^2^2~22^2~1^2~78^2~4 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=3f3f27bee65917f8904f94d783221904d2d9c62f;p=cargo.git Hoist Context creation out of compile_targets() --- diff --git a/src/cargo/ops/cargo_compile.rs b/src/cargo/ops/cargo_compile.rs index e5b0f8132..59a9e0275 100644 --- a/src/cargo/ops/cargo_compile.rs +++ b/src/cargo/ops/cargo_compile.rs @@ -29,7 +29,7 @@ use std::sync::Arc; use core::{Package, Source, Target}; use core::{PackageId, PackageIdSpec, Profile, Profiles, TargetKind, Workspace}; use core::resolver::{Method, Resolve}; -use ops::{self, BuildOutput, DefaultExecutor, Executor}; +use ops::{self, BuildOutput, Context, DefaultExecutor, Executor}; use util::config::Config; use util::{profile, CargoResult, CargoResultExt}; @@ -347,17 +347,15 @@ pub fn compile_ws<'a>( } let mut ret = { let _p = profile::start("compiling"); - ops::compile_targets( + let mut cx = Context::new( ws, - &package_targets, - &packages, &resolve_with_overrides, + &packages, config, build_config, profiles, - export_dir.clone(), - &exec, - )? + )?; + ops::compile_targets(cx, &package_targets, export_dir.clone(), &exec)? }; ret.to_doc_test = to_builds.into_iter().cloned().collect(); diff --git a/src/cargo/ops/cargo_rustc/mod.rs b/src/cargo/ops/cargo_rustc/mod.rs index fb865f565..4da9dbe61 100644 --- a/src/cargo/ops/cargo_rustc/mod.rs +++ b/src/cargo/ops/cargo_rustc/mod.rs @@ -9,12 +9,11 @@ use std::sync::Arc; use same_file::is_same_file; use serde_json; -use core::{Feature, Package, PackageId, PackageSet, Resolve, Target}; -use core::{Profile, Profiles, Workspace}; +use core::{Feature, Package, PackageId, Profile, Target}; use core::manifest::Lto; use core::shell::ColorChoice; use util::{self, machine_message, ProcessBuilder}; -use util::{internal, join_paths, profile, Config}; +use util::{internal, join_paths, profile}; use util::paths; use util::errors::{CargoResult, CargoResultExt, Internal}; use util::Freshness; @@ -150,20 +149,15 @@ impl Executor for DefaultExecutor {} // Returns a mapping of the root package plus its immediate dependencies to // where the compiled libraries are all located. pub fn compile_targets<'a, 'cfg: 'a>( - ws: &Workspace<'cfg>, + mut cx: Context<'a, 'cfg>, pkg_targets: &'a PackagesToBuild<'a>, - packages: &'a PackageSet<'cfg>, - resolve: &'a Resolve, - config: &'cfg Config, - build_config: BuildConfig, - profiles: &'a Profiles, export_dir: Option, exec: &Arc, ) -> CargoResult> { let units = pkg_targets .iter() .flat_map(|&(pkg, ref targets)| { - let default_kind = if build_config.requested_target.is_some() { + let default_kind = if cx.build_config.requested_target.is_some() { Kind::Target } else { Kind::Host @@ -181,7 +175,6 @@ pub fn compile_targets<'a, 'cfg: 'a>( }) .collect::>(); - let mut cx = Context::new(ws, resolve, packages, config, build_config, profiles)?; let mut queue = JobQueue::new(&cx); cx.prepare_units(export_dir, &units)?; cx.prepare()?;