summaryrefslogtreecommitdiff
path: root/mesonbuild/scripts/rustdoc.py
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2025-12-04 14:19:04 +0100
committerDylan Baker <dylan@pnwbakers.com>2025-12-04 11:05:37 -0800
commit05105325bd22ad96b0ba932cd8f1a58293d11d13 (patch)
tree18260aa2a216bbb9148bb6b1a650ec5399b8269b /mesonbuild/scripts/rustdoc.py
parent997e83d68d9ff966ce87d46dcaf48565a9880178 (diff)
downloadmeson-05105325bd22ad96b0ba932cd8f1a58293d11d13.tar.gz
implement --env-set parameter manually in rustdoc script
Rustdoc does not yet support the --env-set parameter, change the environment directly instead. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'mesonbuild/scripts/rustdoc.py')
-rw-r--r--mesonbuild/scripts/rustdoc.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/mesonbuild/scripts/rustdoc.py b/mesonbuild/scripts/rustdoc.py
index 071b36b8a..c1c0d8c43 100644
--- a/mesonbuild/scripts/rustdoc.py
+++ b/mesonbuild/scripts/rustdoc.py
@@ -15,8 +15,8 @@ from ..wrap import WrapMode, wrap
if T.TYPE_CHECKING:
from ..compilers.rust import RustCompiler
-async def run_and_confirm_success(cmdlist: T.List[str], crate: str) -> int:
- returncode = await run_with_buffered_output(cmdlist)
+async def run_and_confirm_success(cmdlist: T.List[str], environ: T.Dict[str, str], crate: str) -> int:
+ returncode = await run_with_buffered_output(cmdlist, environ)
if returncode == 0:
print(mlog.green('Generated'), os.path.join('doc', crate))
return returncode
@@ -54,18 +54,25 @@ class Rustdoc:
prev = None
crate_name = None
is_test = False
+ environ = dict(os.environ)
for arg in src_block['parameters']:
if prev:
if prev == '--crate-name':
cmdlist.extend((prev, arg))
crate_name = arg
+ elif prev == '--env-set':
+ try:
+ key, val = arg.split('=', maxsplit=1)
+ environ[key] = val
+ except ValueError:
+ pass
prev = None
continue
if arg == '--test':
is_test = True
break
- elif arg in {'--crate-name', '--emit', '--out-dir', '-l'}:
+ elif arg in {'--crate-name', '--emit', '--out-dir', '-l', '--env-set'}:
prev = arg
elif arg != '-g' and not arg.startswith('-l'):
cmdlist.append(arg)
@@ -80,7 +87,7 @@ class Rustdoc:
cmdlist.append('--document-private-items')
cmdlist.append('-o')
cmdlist.append('doc')
- yield run_and_confirm_success(cmdlist, crate_name)
+ yield run_and_confirm_success(cmdlist, environ, crate_name)
else:
print(mlog.yellow('Skipping'), target['name'], '(no crate name)')