diff options
Diffstat (limited to 'crates/ra_project_model/src')
-rw-r--r-- | crates/ra_project_model/src/cargo_workspace.rs | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/crates/ra_project_model/src/cargo_workspace.rs b/crates/ra_project_model/src/cargo_workspace.rs index eb9f33ee8..9152a6d9d 100644 --- a/crates/ra_project_model/src/cargo_workspace.rs +++ b/crates/ra_project_model/src/cargo_workspace.rs | |||
@@ -162,7 +162,7 @@ impl CargoWorkspace { | |||
162 | meta.current_dir(parent); | 162 | meta.current_dir(parent); |
163 | } | 163 | } |
164 | if let Some(target) = cargo_features.target.as_ref() { | 164 | if let Some(target) = cargo_features.target.as_ref() { |
165 | meta.other_options(&[String::from("--filter-platform"), target.clone()]); | 165 | meta.other_options(vec![String::from("--filter-platform"), target.clone()]); |
166 | } | 166 | } |
167 | let meta = meta.exec().with_context(|| { | 167 | let meta = meta.exec().with_context(|| { |
168 | format!("Failed to run `cargo metadata --manifest-path {}`", cargo_toml.display()) | 168 | format!("Failed to run `cargo metadata --manifest-path {}`", cargo_toml.display()) |
@@ -305,19 +305,13 @@ pub fn load_extern_resources( | |||
305 | 305 | ||
306 | let mut res = ExternResources::default(); | 306 | let mut res = ExternResources::default(); |
307 | 307 | ||
308 | for message in cargo_metadata::parse_messages(output.stdout.as_slice()) { | 308 | for message in cargo_metadata::Message::parse_stream(output.stdout.as_slice()) { |
309 | if let Ok(message) = message { | 309 | if let Ok(message) = message { |
310 | match message { | 310 | match message { |
311 | Message::BuildScriptExecuted(BuildScript { package_id, out_dir, cfgs, .. }) => { | 311 | Message::BuildScriptExecuted(BuildScript { package_id, out_dir, cfgs, .. }) => { |
312 | res.out_dirs.insert(package_id.clone(), out_dir); | 312 | res.out_dirs.insert(package_id.clone(), out_dir); |
313 | res.cfgs.insert( | 313 | res.cfgs.insert(package_id, cfgs); |
314 | package_id, | ||
315 | // FIXME: Current `cargo_metadata` uses `PathBuf` instead of `String`, | ||
316 | // change when https://github.com/oli-obk/cargo_metadata/pulls/112 reaches crates.io | ||
317 | cfgs.iter().filter_map(|c| c.to_str().map(|s| s.to_owned())).collect(), | ||
318 | ); | ||
319 | } | 314 | } |
320 | |||
321 | Message::CompilerArtifact(message) => { | 315 | Message::CompilerArtifact(message) => { |
322 | if message.target.kind.contains(&"proc-macro".to_string()) { | 316 | if message.target.kind.contains(&"proc-macro".to_string()) { |
323 | let package_id = message.package_id; | 317 | let package_id = message.package_id; |
@@ -330,6 +324,8 @@ pub fn load_extern_resources( | |||
330 | } | 324 | } |
331 | Message::CompilerMessage(_) => (), | 325 | Message::CompilerMessage(_) => (), |
332 | Message::Unknown => (), | 326 | Message::Unknown => (), |
327 | Message::BuildFinished(_) => {} | ||
328 | Message::TextLine(_) => {} | ||
333 | } | 329 | } |
334 | } | 330 | } |
335 | } | 331 | } |