From 0bedceea7db0f2d0d4f7f369e068ecb21221428b Mon Sep 17 00:00:00 2001 From: Ximin Luo Date: Thu, 28 Jun 2018 18:57:24 -0700 Subject: [PATCH] [PATCH] Support cross-compile install Gbp-Pq: Name 0774e97da3894f07ed5b6f7db175027a9bc4718b.patch --- src/bin/cargo/commands/install.rs | 1 + tests/testsuite/install.rs | 35 +++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/bin/cargo/commands/install.rs b/src/bin/cargo/commands/install.rs index f0c65515d..efac1a940 100644 --- a/src/bin/cargo/commands/install.rs +++ b/src/bin/cargo/commands/install.rs @@ -32,6 +32,7 @@ pub fn cli() -> App { "Install only the specified example", "Install all examples", ) + .arg_target_triple("Build for the target triple") .arg(opt("root", "Directory to install packages into").value_name("DIR")) .after_help( "\ diff --git a/tests/testsuite/install.rs b/tests/testsuite/install.rs index b26721d35..7faf714fe 100644 --- a/tests/testsuite/install.rs +++ b/tests/testsuite/install.rs @@ -4,6 +4,7 @@ use std::io::prelude::*; use cargo::util::ProcessBuilder; use cargotest::install::{cargo_home, has_installed_exe}; +use cargotest::support::cross_compile; use cargotest::support::git; use cargotest::support::paths; use cargotest::support::registry::Package; @@ -1309,6 +1310,40 @@ fn dev_dependencies_lock_file_untouched() { assert!(lock == lock2, "different lockfiles"); } +#[test] +fn install_target_native() { + pkg("foo", "0.1.0"); + + assert_that( + cargo_process("install") + .arg("foo") + .arg("--target") + .arg(cargotest::rustc_host()), + execs() + .with_status(0), + ); + assert_that(cargo_home(), has_installed_exe("foo")); +} + +#[test] +fn install_target_foreign() { + if cross_compile::disabled() { + return; + } + + pkg("foo", "0.1.0"); + + assert_that( + cargo_process("install") + .arg("foo") + .arg("--target") + .arg(cross_compile::alternate()), + execs() + .with_status(0), + ); + assert_that(cargo_home(), has_installed_exe("foo")); +} + #[test] fn vers_precise() { pkg("foo", "0.1.1"); -- 2.30.2