python-setuptools-rust: Set cargo profile from environment variable
This adds a patch (submitted upstream in https://github.com/PyO3/setuptools-rust/pull/364), to read the profile to pass to cargo from an environment variable. This also updates the Python include files to set the environment variable based on values from rust-values.mk. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This commit is contained in:
parent
8bf2725f9b
commit
29ca9797a6
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=python-setuptools-rust
|
PKG_NAME:=python-setuptools-rust
|
||||||
PKG_VERSION:=1.7.0
|
PKG_VERSION:=1.7.0
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=2
|
||||||
|
|
||||||
PYPI_NAME:=setuptools-rust
|
PYPI_NAME:=setuptools-rust
|
||||||
PKG_HASH:=c7100999948235a38ae7e555fe199aa66c253dc384b125f5d85473bf81eae3a3
|
PKG_HASH:=c7100999948235a38ae7e555fe199aa66c253dc384b125f5d85473bf81eae3a3
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
From b10cab4efeb80abb5a236d651c9ff9355e470527 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jeffery To <jeffery.to@gmail.com>
|
||||||
|
Date: Mon, 2 Oct 2023 16:13:51 +0800
|
||||||
|
Subject: [PATCH] Allow profile to be set by SETUPTOOLS_RUST_CARGO_PROFILE env
|
||||||
|
variable
|
||||||
|
|
||||||
|
This allows the profile to be set dynamically, without having to edit
|
||||||
|
pyproject.toml/setup.py.
|
||||||
|
---
|
||||||
|
setuptools_rust/build.py | 20 ++++++++++++++++----
|
||||||
|
1 file changed, 16 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
--- a/setuptools_rust/build.py
|
||||||
|
+++ b/setuptools_rust/build.py
|
||||||
|
@@ -528,10 +528,10 @@ class build_rust(RustCommand):
|
||||||
|
if target_triple is not None:
|
||||||
|
args.extend(["--target", target_triple])
|
||||||
|
|
||||||
|
- if release:
|
||||||
|
- profile = ext.get_cargo_profile()
|
||||||
|
- if not profile:
|
||||||
|
- args.append("--release")
|
||||||
|
+ ext_profile = ext.get_cargo_profile()
|
||||||
|
+ env_profile = os.getenv("SETUPTOOLS_RUST_CARGO_PROFILE")
|
||||||
|
+ if release and not ext_profile and not env_profile:
|
||||||
|
+ args.append("--release")
|
||||||
|
|
||||||
|
if quiet:
|
||||||
|
args.append("-q")
|
||||||
|
@@ -552,6 +552,18 @@ class build_rust(RustCommand):
|
||||||
|
if ext.args is not None:
|
||||||
|
args.extend(ext.args)
|
||||||
|
|
||||||
|
+ if env_profile:
|
||||||
|
+ if ext_profile:
|
||||||
|
+ args = [p for p in args if not p.startswith("--profile=")]
|
||||||
|
+ while True:
|
||||||
|
+ try:
|
||||||
|
+ index = args.index("--profile")
|
||||||
|
+ del args[index:index + 2]
|
||||||
|
+ except ValueError:
|
||||||
|
+ break
|
||||||
|
+
|
||||||
|
+ args.extend(["--profile", env_profile])
|
||||||
|
+
|
||||||
|
if ext.cargo_manifest_args is not None:
|
||||||
|
args.extend(ext.cargo_manifest_args)
|
||||||
|
|
|
@ -78,7 +78,8 @@ HOST_PYTHON3_VARS = \
|
||||||
CFLAGS="$(HOST_CFLAGS)" \
|
CFLAGS="$(HOST_CFLAGS)" \
|
||||||
CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON3_INC_DIR)" \
|
CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON3_INC_DIR)" \
|
||||||
LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON3_VERSION) -Wl$(comma)-rpath$(comma)$(STAGING_DIR_HOSTPKG)/lib" \
|
LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON3_VERSION) -Wl$(comma)-rpath$(comma)$(STAGING_DIR_HOSTPKG)/lib" \
|
||||||
$(CARGO_HOST_CONFIG_VARS)
|
$(CARGO_HOST_CONFIG_VARS) \
|
||||||
|
SETUPTOOLS_RUST_CARGO_PROFILE="$(CARGO_HOST_PROFILE)"
|
||||||
|
|
||||||
# $(1) => directory of python script
|
# $(1) => directory of python script
|
||||||
# $(2) => python script and its arguments
|
# $(2) => python script and its arguments
|
||||||
|
|
|
@ -46,7 +46,8 @@ PYTHON3_VARS = \
|
||||||
_python_prefix="/usr" \
|
_python_prefix="/usr" \
|
||||||
_python_exec_prefix="/usr" \
|
_python_exec_prefix="/usr" \
|
||||||
$(CARGO_PKG_CONFIG_VARS) \
|
$(CARGO_PKG_CONFIG_VARS) \
|
||||||
PYO3_CROSS_LIB_DIR="$(PYTHON3_LIB_DIR)"
|
PYO3_CROSS_LIB_DIR="$(PYTHON3_LIB_DIR)" \
|
||||||
|
SETUPTOOLS_RUST_CARGO_PROFILE="$(CARGO_PKG_PROFILE)"
|
||||||
|
|
||||||
# $(1) => directory of python script
|
# $(1) => directory of python script
|
||||||
# $(2) => python script and its arguments
|
# $(2) => python script and its arguments
|
||||||
|
|
Loading…
Reference in New Issue