Skip to content

Commit 21eca17

Browse files
committed
Explicitly specifying the package
1 parent 5db315a commit 21eca17

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

src/cargo.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ use crate::{Action, Target, TargetKind};
1111
fn convert(metadata: CargoMetadata, current_dir: &Path) -> Vec<Target> {
1212
let mut targets = Vec::new();
1313
for p in &metadata.packages {
14+
let package_name = p.name.as_str();
1415
for t in &p.targets {
1516
if is_select_target(t) {
16-
targets.push(build_target(t, current_dir));
17+
targets.push(build_target(t, package_name, current_dir));
1718
}
1819
}
1920
}
@@ -24,8 +25,9 @@ fn is_select_target(t: &CargoTarget) -> bool {
2425
t.is_bin() || t.is_example()
2526
}
2627

27-
fn build_target(t: &CargoTarget, current_dir: &Path) -> Target {
28+
fn build_target(t: &CargoTarget, package_name: &str, current_dir: &Path) -> Target {
2829
let name = t.name.to_owned();
30+
let package = package_name.to_owned();
2931
let kind = if t.is_bin() {
3032
TargetKind::Bin
3133
} else {
@@ -40,6 +42,7 @@ fn build_target(t: &CargoTarget, current_dir: &Path) -> Target {
4042

4143
Target {
4244
name,
45+
package,
4346
kind,
4447
path,
4548
required_features,
@@ -77,6 +80,8 @@ pub fn exec_cargo_run(
7780
let mut cmd = Command::new("cargo");
7881
cmd.arg(action).arg(kind).arg(name);
7982

83+
cmd.arg("--package").arg(&target.package);
84+
8085
let require_features = !target.required_features.is_empty();
8186

8287
if require_features {

src/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ struct SelectorArgs {
6464
#[derive(Debug, Clone)]
6565
pub struct Target {
6666
name: String,
67+
package: String,
6768
kind: TargetKind,
6869
path: String,
6970
required_features: Vec<String>,

0 commit comments

Comments
 (0)