aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_project_model/src
diff options
context:
space:
mode:
authorEdwin Cheng <[email protected]>2020-05-09 23:22:26 +0100
committerEdwin Cheng <[email protected]>2020-05-09 23:22:26 +0100
commit2400d70442364769b4ae18315fc178427d2d95a9 (patch)
tree95a2ac4b2b8ab3f510305e69ffd46d98190098e9 /crates/ra_project_model/src
parent8295a9340c1fbda805497035054ead0b10c0d88e (diff)
Update cargo-metadata
Diffstat (limited to 'crates/ra_project_model/src')
-rw-r--r--crates/ra_project_model/src/cargo_workspace.rs14
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 }