openwrt-packages/lang/python/python-setuptools-rust/patches/0001-Allow-profile-to-be-se...

49 lines
1.7 KiB
Diff

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)