rust: compile host package per target
authorOrne Brocaar <info@brocaar.com>
Sat, 15 Jul 2023 17:16:44 +0000 (01:16 +0800)
committerTianling Shen <cnsztl@gmail.com>
Mon, 17 Jul 2023 20:49:50 +0000 (04:49 +0800)
commitf489e019ac4a15e974518d9928ef913a157d135a
tree03268924076cdd29085b9a75d4fcfdb60bf64274
parent5e66a69433e59c5f1089167917364f91b45b91be
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>
lang/rust/Makefile
lang/rust/rust-values.mk