rust: compile host package per target
authorOrne Brocaar <info@brocaar.com>
Sat, 15 Jul 2023 17:16:44 +0000 (01:16 +0800)
committerOrne Brocaar <info@brocaar.com>
Tue, 18 Jul 2023 13:18:50 +0000 (14:18 +0100)
commit26de69a8f0f7dd4d5e6f81faf820169ac02f0d62
treea4a620ba031adbc415730055b80698300476789d
parent16546572f27040586bf44fbe1a466da762575d20
rust: compile host package per target

While the compiled binaries are intended to run on the host system, the
rust/host package does include the target matching the configured
OpenWrt target.

If using (for example) ./scripts/env to switch between different
OpenWrt configurations, this will cause issues if the different
configuration is for a different target. In such case there will be a
mismatch between the available Rust target and OpenWrt target and the
following error will be printed:

> error[E0463]: can't find crate for `core`
> note: the `XXX` target may not be installed

This fix will add the RUSTC_TARGET_ARCH as HOST_BUILD_DIR and CARGO_HOME
suffix, such that rust/host will be compiled in case an OpenWrt
configuration change causes the RUSTC_TARGET_ARCH to change.

Fixes: #21530
Signed-off-by: Orne Brocaar <info@brocaar.com>
[Applied Jeffery To's suggestion for build and install path]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit f489e019ac4a15e974518d9928ef913a157d135a)
lang/rust/Makefile
lang/rust/rust-values.mk