From b48336bf940ce1b55e72d244ff9f28573f2e5548 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 21 Jul 2020 15:12:12 +0200 Subject: Replace OUT_DIR in project.json with general env OUT_DIR doesn't make sense here, as this is a cargo-specific concept --- crates/ra_project_model/src/lib.rs | 7 ++----- crates/ra_project_model/src/project_json.rs | 9 +++++---- 2 files changed, 7 insertions(+), 9 deletions(-) (limited to 'crates') diff --git a/crates/ra_project_model/src/lib.rs b/crates/ra_project_model/src/lib.rs index 05f2e7b7a..2bb156610 100644 --- a/crates/ra_project_model/src/lib.rs +++ b/crates/ra_project_model/src/lib.rs @@ -259,11 +259,8 @@ impl ProjectWorkspace { let file_id = load(&file_path)?; let mut env = Env::default(); - if let Some(out_dir) = &krate.out_dir { - // NOTE: cargo and rustc seem to hide non-UTF-8 strings from env! and option_env!() - if let Some(out_dir) = out_dir.to_str().map(|s| s.to_owned()) { - env.set("OUT_DIR", out_dir); - } + for (k, v) in &krate.env { + env.set(k, v.clone()); } let proc_macro = krate .proc_macro_dylib_path diff --git a/crates/ra_project_model/src/project_json.rs b/crates/ra_project_model/src/project_json.rs index e0052ac6d..e9a333191 100644 --- a/crates/ra_project_model/src/project_json.rs +++ b/crates/ra_project_model/src/project_json.rs @@ -5,7 +5,7 @@ use std::path::PathBuf; use paths::{AbsPath, AbsPathBuf}; use ra_cfg::CfgOptions; use ra_db::{CrateId, CrateName, Dependency, Edition}; -use rustc_hash::FxHashSet; +use rustc_hash::{FxHashMap, FxHashSet}; use serde::{de, Deserialize}; use stdx::split_delim; @@ -24,7 +24,7 @@ pub struct Crate { pub(crate) deps: Vec, pub(crate) cfg: CfgOptions, pub(crate) target: Option, - pub(crate) out_dir: Option, + pub(crate) env: FxHashMap, pub(crate) proc_macro_dylib_path: Option, pub(crate) is_workspace_member: bool, pub(crate) include: Vec, @@ -78,7 +78,7 @@ impl ProjectJson { cfg }, target: crate_data.target, - out_dir: crate_data.out_dir.map(|it| base.join(it)), + env: crate_data.env, proc_macro_dylib_path: crate_data .proc_macro_dylib_path .map(|it| base.join(it)), @@ -105,7 +105,8 @@ struct CrateData { #[serde(default)] cfg: FxHashSet, target: Option, - out_dir: Option, + #[serde(default)] + env: FxHashMap, proc_macro_dylib_path: Option, is_workspace_member: Option, source: Option, -- cgit v1.2.3