From 5d09137bb6305311f1c59aa71ebd379d7e74b6ef Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Mon, 1 Apr 2019 16:53:23 -0700 Subject: [PATCH] Don't include metadata in wasm binary examples. --- src/cargo/core/compiler/context/compilation_files.rs | 2 +- src/cargo/core/compiler/context/mod.rs | 4 ++-- src/cargo/core/manifest.rs | 9 ++++++++- src/cargo/ops/cargo_install.rs | 2 +- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/cargo/core/compiler/context/compilation_files.rs b/src/cargo/core/compiler/context/compilation_files.rs index fd30a92a4e2..309c35e439b 100644 --- a/src/cargo/core/compiler/context/compilation_files.rs +++ b/src/cargo/core/compiler/context/compilation_files.rs @@ -444,7 +444,7 @@ fn compute_metadata<'a, 'cfg>( if !(unit.mode.is_any_test() || unit.mode.is_check()) && (unit.target.is_dylib() || unit.target.is_cdylib() - || (unit.target.is_bin() && bcx.target_triple().starts_with("wasm32-"))) + || (unit.target.is_executable() && bcx.target_triple().starts_with("wasm32-"))) && unit.pkg.package_id().source_id().is_path() && __cargo_default_lib_metadata.is_err() { diff --git a/src/cargo/core/compiler/context/mod.rs b/src/cargo/core/compiler/context/mod.rs index 511f3ec987a..67e22d5ec83 100644 --- a/src/cargo/core/compiler/context/mod.rs +++ b/src/cargo/core/compiler/context/mod.rs @@ -170,7 +170,7 @@ impl<'a, 'cfg> Context<'a, 'cfg> { unit.target.clone(), output.path.clone(), )); - } else if unit.target.is_bin() || unit.target.is_bin_example() { + } else if unit.target.is_executable() { self.compilation.binaries.push(bindst.clone()); } } @@ -276,7 +276,7 @@ impl<'a, 'cfg> Context<'a, 'cfg> { continue; } - let is_binary = unit.target.is_bin() || unit.target.is_bin_example(); + let is_binary = unit.target.is_executable(); let is_test = unit.mode.is_any_test() && !unit.mode.is_check(); if is_binary || is_test { diff --git a/src/cargo/core/manifest.rs b/src/cargo/core/manifest.rs index 4fdbe65faca..5afa9541c9d 100644 --- a/src/cargo/core/manifest.rs +++ b/src/cargo/core/manifest.rs @@ -814,7 +814,14 @@ impl Target { } } - pub fn is_bin_example(&self) -> bool { + /// Returns `true` if it is a binary or executable example. + /// NOTE: Tests are `false`! + pub fn is_executable(&self) -> bool { + self.is_bin() || self.is_exe_example() + } + + /// Returns `true` if it is an executable example. + pub fn is_exe_example(&self) -> bool { // Needed for --all-examples in contexts where only runnable examples make sense match self.kind { TargetKind::ExampleBin => true, diff --git a/src/cargo/ops/cargo_install.rs b/src/cargo/ops/cargo_install.rs index b3a3a8062bc..76925ed4d8a 100644 --- a/src/cargo/ops/cargo_install.rs +++ b/src/cargo/ops/cargo_install.rs @@ -475,7 +475,7 @@ fn find_duplicates( let all_examples: Vec = examples.try_collect().unwrap_or_else(|| { pkg.targets() .iter() - .filter(|t| t.is_bin_example()) + .filter(|t| t.is_exe_example()) .map(|t| t.name().to_string()) .collect() });