[Buildroot] [PATCH 2/6] package/cargo-bin: declare as cargo provider

Eric Le Bihan eric.le.bihan.dev at free.fr
Wed Jul 24 22:12:03 UTC 2019


If cargo-bin is explicitly selected, then install binary in $(HOST_DIR)
and declare package as cargo provider.

Signed-off-by: Eric Le Bihan <eric.le.bihan.dev at free.fr>
---
 package/cargo-bin/cargo-bin.mk |  8 ++++++++
 package/cargo/Config.in.host   | 19 +++++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/package/cargo-bin/cargo-bin.mk b/package/cargo-bin/cargo-bin.mk
index 3614f7a53d..809bb64cae 100644
--- a/package/cargo-bin/cargo-bin.mk
+++ b/package/cargo-bin/cargo-bin.mk
@@ -9,5 +9,13 @@ CARGO_BIN_SITE = https://static.rust-lang.org/dist
 CARGO_BIN_SOURCE = cargo-$(CARGO_BIN_VERSION)-$(RUSTC_HOST_NAME).tar.xz
 CARGO_BIN_LICENSE = Apache-2.0 or MIT
 CARGO_BIN_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT
+CARGO_BIN_PROVIDES = host-cargo
+
+ifeq ($(BR2_PACKAGE_HOST_CARGO_BIN),y)
+define HOST_CARGO_BIN_INSTALL_CMDS
+	$(@D)/install.sh --prefix=$(HOST_DIR) --disable-ldconfig
+endef
+HOST_CARGO_BIN_POST_INSTALL_HOOKS += HOST_CARGO_INSTALL_CONFIG
+endif
 
 $(eval $(host-generic-package))
diff --git a/package/cargo/Config.in.host b/package/cargo/Config.in.host
index 82652fa980..bae30d2f57 100644
--- a/package/cargo/Config.in.host
+++ b/package/cargo/Config.in.host
@@ -7,10 +7,29 @@ config BR2_PACKAGE_HOST_CARGO
 
 	  https://crates.io/
 
+if BR2_PACKAGE_HOST_CARGO
+
+choice
+	prompt "Cargo provider"
+	help
+	  Select a Cargo package manager provider
+
+config BR2_PACKAGE_HOST_CARGO_BIN
+	bool "host cargo (pre-built)"
+	depends on BR2_PACKAGE_HOST_RUST_BIN
+	select BR2_PACKAGE_HAS_HOST_CARGO
+	help
+	  This package will install a pre-built version of Cargo.
+
+endchoice
+
+endif
+
 config BR2_PACKAGE_HAS_HOST_CARGO
 	bool
 
 config BR2_PACKAGE_PROVIDES_HOST_CARGO
 	string
 	depends on BR2_PACKAGE_HAS_HOST_CARGO
+	default "host-cargo-bin" if !BR2_PACKAGE_HOST_RUST
 	depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
-- 
2.20.1



More information about the buildroot mailing list