[Buildroot] [PATCH 3/6] package/rust: declare as cargo provider
Eric Le Bihan
eric.le.bihan.dev at free.fr
Wed Jul 24 22:12:04 UTC 2019
Enable build of cargo along with Rust compiler and declare this package
as a cargo provider.
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev at free.fr>
---
package/cargo/Config.in.host | 8 ++++++++
package/rust/rust.mk | 23 ++++++++++++++++++++++-
2 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/package/cargo/Config.in.host b/package/cargo/Config.in.host
index bae30d2f57..d1bb913573 100644
--- a/package/cargo/Config.in.host
+++ b/package/cargo/Config.in.host
@@ -14,6 +14,13 @@ choice
help
Select a Cargo package manager provider
+config BR2_PACKAGE_HOST_RUST_CARGO
+ bool "host rust"
+ depends on BR2_PACKAGE_HOST_RUST
+ select BR2_PACKAGE_HAS_HOST_CARGO
+ help
+ Install Cargo built at the same time as the Rust compiler.
+
config BR2_PACKAGE_HOST_CARGO_BIN
bool "host cargo (pre-built)"
depends on BR2_PACKAGE_HOST_RUST_BIN
@@ -32,4 +39,5 @@ config BR2_PACKAGE_PROVIDES_HOST_CARGO
string
depends on BR2_PACKAGE_HAS_HOST_CARGO
default "host-cargo-bin" if !BR2_PACKAGE_HOST_RUST
+ default "host-rust" if BR2_PACKAGE_HOST_RUST
depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
diff --git a/package/rust/rust.mk b/package/rust/rust.mk
index 5d14fc6682..ff23cd8930 100644
--- a/package/rust/rust.mk
+++ b/package/rust/rust.mk
@@ -10,7 +10,7 @@ RUST_SITE = https://static.rust-lang.org/dist
RUST_LICENSE = Apache-2.0 or MIT
RUST_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT
-HOST_RUST_PROVIDES = host-rustc
+HOST_RUST_PROVIDES = host-rustc host-cargo
HOST_RUST_DEPENDENCIES = \
toolchain \
@@ -38,6 +38,25 @@ endef
HOST_RUST_POST_EXTRACT_HOOKS += HOST_RUST_EXCLUDE_ORIG_FILES
+ifeq ($(BR2_PACKAGE_HOST_RUST_CARGO),y)
+
+define HOST_RUST_ENABLE_CARGO
+ echo 'extended = true'; \
+ echo 'tools = ["cargo"]';
+endef
+
+define HOST_RUST_INSTALL_CARGO
+ find $(@D)/build/tmp/dist -maxdepth 2 -wholename '*cargo*/install.sh' \
+ -exec {} --prefix=$(HOST_DIR) --disable-ldconfig \;
+
+endef
+
+HOST_RUST_POST_INSTALL_HOOKS += \
+ HOST_RUST_INSTALL_CARGO \
+ HOST_CARGO_INSTALL_CONFIG
+
+endif
+
define HOST_RUST_CONFIGURE_CMDS
( \
echo '[build]'; \
@@ -47,11 +66,13 @@ define HOST_RUST_CONFIGURE_CMDS
echo 'python = "$(HOST_DIR)/bin/python2"'; \
echo 'submodules = false'; \
echo 'vendor = true'; \
+ $(HOST_RUST_ENABLE_CARGO) \
echo 'compiler-docs = false'; \
echo 'docs = false'; \
echo 'verbose = $(HOST_RUST_VERBOSITY)'; \
echo '[install]'; \
echo 'prefix = "$(HOST_DIR)"'; \
+ echo 'sysconfdir = "$(HOST_DIR)/etc"'; \
echo '[rust]'; \
echo 'channel = "stable"'; \
echo '[target.$(RUSTC_TARGET_NAME)]'; \
--
2.20.1
More information about the buildroot
mailing list