rust: Consolidate cargo environment variables
authorJeffery To <[email protected]>
Mon, 25 Sep 2023 03:58:12 +0000 (11:58 +0800)
committerJeffery To <[email protected]>
Wed, 11 Oct 2023 07:50:23 +0000 (15:50 +0800)
This consolidates all environment variables for cargo into:

* CARGO_HOST_CONFIG_VARS / CARGO_PKG_CONFIG_VARS

  These contain all cargo-specific environment variables, i.e. without
  "common" variables like CC.

* CARGO_HOST_VARS / CARGO_PKG_VARS (renamed from CARGO_VARS)

  These contain all environment variables to be passed to cargo.

This also:

* Set the CARGO_BUILD_TARGET environment variable instead of using the
  --target command-line option

* Update Python include files to use CARGO_HOST_CONFIG_VARS /
  CARGO_PKG_CONFIG_VARS

Signed-off-by: Jeffery To <[email protected]>
lang/python/python3-host.mk
lang/python/python3-package.mk
lang/rust/rust-host-build.mk
lang/rust/rust-package.mk
lang/rust/rust-values.mk
net/netavark/Makefile

index 6ca002587c957897230507bfe83288def558df95..b233c56799e0aec6076beaec40da3a12a0e69e35 100644 (file)
@@ -78,7 +78,7 @@ HOST_PYTHON3_VARS = \
        CFLAGS="$(HOST_CFLAGS)" \
        CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON3_INC_DIR)" \
        LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON3_VERSION) -Wl$(comma)-rpath$(comma)$(STAGING_DIR_HOSTPKG)/lib" \
-       CARGO_HOME="$(CARGO_HOME)"
+       $(CARGO_HOST_CONFIG_VARS)
 
 # $(1) => directory of python script
 # $(2) => python script and its arguments
index fcb1d06b3a52d3d51341231931ea61a47d027295..e4c7bd264cdf6f0c88b4f45e75a7ec369fa40e6c 100644 (file)
@@ -45,10 +45,8 @@ PYTHON3_VARS = \
        _python_sysroot="$(STAGING_DIR)" \
        _python_prefix="/usr" \
        _python_exec_prefix="/usr" \
-       CARGO_BUILD_TARGET="$(RUSTC_TARGET_ARCH)" \
-       CARGO_HOME="$(CARGO_HOME)" \
-       PYO3_CROSS_LIB_DIR="$(PYTHON3_LIB_DIR)" \
-       RUSTFLAGS="$(CARGO_RUSTFLAGS)"
+       $(CARGO_PKG_CONFIG_VARS) \
+       PYO3_CROSS_LIB_DIR="$(PYTHON3_LIB_DIR)"
 
 # $(1) => directory of python script
 # $(2) => python script and its arguments
index a03df2493ab227c06282635e3643d900588f6500..38ce963e0fd327885925ebafe028190eeb0237b2 100644 (file)
@@ -15,13 +15,16 @@ ifeq ($(origin RUST_INCLUDE_DIR),undefined)
 endif
 include $(RUST_INCLUDE_DIR)/rust-values.mk
 
+CARGO_HOST_VARS= \
+       $(CARGO_HOST_CONFIG_VARS) \
+       CC=$(HOSTCC_NOCACHE)
+
 # $(1) path to the package (optional)
 # $(2) additional arguments to cargo (optional)
 define Host/Compile/Cargo
        ( \
                cd $(HOST_BUILD_DIR) ; \
-               CARGO_HOME=$(CARGO_HOME) \
-               CC=$(HOSTCC_NOCACHE) \
+               $(CARGO_HOST_VARS) \
                cargo install -v \
                        --profile $(CARGO_HOST_PROFILE) \
                        $(if $(RUST_HOST_FEATURES),--features "$(RUST_HOST_FEATURES)") \
@@ -33,8 +36,7 @@ endef
 define Host/Uninstall/Cargo
        ( \
                cd $(HOST_BUILD_DIR) ; \
-               CARGO_HOME=$(CARGO_HOME) \
-               CC=$(HOSTCC_NOCACHE) \
+               $(CARGO_HOST_VARS) \
                cargo uninstall -v \
                        --root $(HOST_INSTALL_DIR) || true ; \
        )
index 713d37d5bef7a04f8373a28d20ca7b888a1f480b..6deb859fb62309b4224709a684e44573a70f4aa6 100644 (file)
@@ -15,22 +15,18 @@ ifeq ($(origin RUST_INCLUDE_DIR),undefined)
 endif
 include $(RUST_INCLUDE_DIR)/rust-values.mk
 
+CARGO_PKG_VARS= \
+       $(CARGO_PKG_CONFIG_VARS) \
+       CC=$(HOSTCC_NOCACHE)
+
 # $(1) path to the package (optional)
 # $(2) additional arguments to cargo (optional)
 define Build/Compile/Cargo
        ( \
                cd $(PKG_BUILD_DIR) ; \
-               CARGO_HOME=$(CARGO_HOME) \
-               CARGO_PROFILE_RELEASE_OPT_LEVEL=s \
-               CARGO_TARGET_$(subst -,_,$(call toupper,$(RUSTC_TARGET_ARCH)))_LINKER=$(TARGET_CC_NOCACHE) \
-               TARGET_CFLAGS="$(TARGET_CFLAGS) $(RUSTC_CFLAGS)" \
-               TARGET_CC=$(TARGET_CC_NOCACHE) \
-               CC=$(HOSTCC_NOCACHE) \
-               RUSTFLAGS="$(CARGO_RUSTFLAGS)" \
-               $(CARGO_VARS) \
+               $(CARGO_PKG_VARS) \
                cargo install -v \
                        --profile $(CARGO_PKG_PROFILE) \
-                       --target $(RUSTC_TARGET_ARCH) \
                        $(if $(strip $(RUST_PKG_FEATURES)),--features "$(strip $(RUST_PKG_FEATURES))") \
                        --root $(PKG_INSTALL_DIR) \
                        --path "$(if $(strip $(1)),$(strip $(1)),.)" \
index a0fab6ae10917444e8cec5b6698e4b8ce5787b7d..8f2017af6b14e937bf2f6eb7636cb2ffd7231fbd 100644 (file)
@@ -6,7 +6,6 @@
 RUSTC_HOST_SUFFIX:=$(word 4, $(subst -, ,$(GNU_HOST_NAME)))
 RUSTC_HOST_ARCH:=$(HOST_ARCH)-unknown-linux-$(RUSTC_HOST_SUFFIX)
 CARGO_HOME:=$(DL_DIR)/cargo
-CARGO_VARS?=
 
 ifeq ($(CONFIG_USE_MUSL),y)
   # Force linking of the SSP library for musl
@@ -63,6 +62,18 @@ endif
 # Support only a subset for now.
 RUST_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||mips||mipsel||mips64||mips64el||mipsel||powerpc64||riscv64||x86_64)
 
+CARGO_HOST_CONFIG_VARS= \
+       CARGO_HOME=$(CARGO_HOME)
+
 CARGO_HOST_PROFILE:=release
 
+CARGO_PKG_CONFIG_VARS= \
+       CARGO_BUILD_TARGET=$(RUSTC_TARGET_ARCH) \
+       CARGO_HOME=$(CARGO_HOME) \
+       CARGO_PROFILE_RELEASE_OPT_LEVEL=s \
+       CARGO_TARGET_$(subst -,_,$(call toupper,$(RUSTC_TARGET_ARCH)))_LINKER=$(TARGET_CC_NOCACHE) \
+       RUSTFLAGS="$(CARGO_RUSTFLAGS)" \
+       TARGET_CC=$(TARGET_CC_NOCACHE) \
+       TARGET_CFLAGS="$(TARGET_CFLAGS) $(RUSTC_CFLAGS)"
+
 CARGO_PKG_PROFILE:=$(if $(CONFIG_DEBUG),dev,release)
index d6d976fc24ee5dc88698a7e4de9eea7b70243414..9d5c5f4054002c88c4d841782c478f3ead8f692c 100644 (file)
@@ -36,7 +36,7 @@ define Package/netavark/conffiles
 /etc/config/netavark
 endef
 
-CARGO_VARS += \
+CARGO_PKG_VARS += \
        PROTOC=$(STAGING_DIR_HOSTPKG)/bin/protoc
 
 define Package/netavark/install