From ce06f77208ef9cf64727b7a0e60db4cb7680a6dc Mon Sep 17 00:00:00 2001 From: Joshua Nelson Date: Fri, 6 Dec 2019 19:42:43 -0500 Subject: [PATCH 1/2] [BROKEN] treat any crate that's not a binary as a library closes https://github.com/rust-lang/docs.rs/issues/503 TODO: this tries to build crates that are binaries and don't have a crate-type field --- src/utils/cargo_metadata.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/cargo_metadata.rs b/src/utils/cargo_metadata.rs index 2bdc70b5c..3451f93c2 100644 --- a/src/utils/cargo_metadata.rs +++ b/src/utils/cargo_metadata.rs @@ -84,7 +84,7 @@ impl Package { target .kind .iter() - .any(|kind| kind == "lib" || kind == "proc-macro") + .any(|kind| kind != "bin") }) } From dc02b5b6785eddeaa08c47e9842711b084e980ca Mon Sep 17 00:00:00 2001 From: Joshua Nelson Date: Fri, 6 Dec 2019 20:15:03 -0500 Subject: [PATCH 2/2] don't try to compile examples and tests see https://github.com/rust-lang/docs.rs/issues/503#issuecomment-562797599 for context --- src/utils/cargo_metadata.rs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/utils/cargo_metadata.rs b/src/utils/cargo_metadata.rs index 3451f93c2..7d56b773e 100644 --- a/src/utils/cargo_metadata.rs +++ b/src/utils/cargo_metadata.rs @@ -80,12 +80,9 @@ pub(crate) struct Package { impl Package { fn library_target(&self) -> Option<&Target> { - self.targets.iter().find(|target| { - target - .kind - .iter() - .any(|kind| kind != "bin") - }) + self.targets + .iter() + .find(|target| target.crate_types.iter().any(|kind| kind != "bin")) } pub(crate) fn is_library(&self) -> bool { @@ -110,7 +107,7 @@ impl Package { #[derive(RustcDecodable)] pub(crate) struct Target { pub(crate) name: String, - pub(crate) kind: Vec, + crate_types: Vec, pub(crate) src_path: Option, }