mirror of
https://gitlab.com/qemu-project/qemu.git
synced 2026-05-08 21:30:22 -04:00
0074a47147
This adds several improvements to Rust support, including native clippy and rustdoc targets, the "objects" keyword, and running doctests. Require it only when Rust support is requested, to avoid putting a strict requirement on all build platforms for the sake of an experimental feature. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
75 lines
1.7 KiB
Python
Executable File
75 lines
1.7 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
vendor - QEMU python vendoring utility
|
|
|
|
usage: vendor [-h]
|
|
|
|
QEMU python vendoring utility
|
|
|
|
options:
|
|
-h, --help show this help message and exit
|
|
"""
|
|
|
|
# Copyright (C) 2023 Red Hat, Inc.
|
|
#
|
|
# Authors:
|
|
# John Snow <jsnow@redhat.com>
|
|
#
|
|
# This work is licensed under the terms of the GNU GPL, version 2 or
|
|
# later. See the COPYING file in the top-level directory.
|
|
|
|
import argparse
|
|
import os
|
|
from pathlib import Path
|
|
import subprocess
|
|
import sys
|
|
import tempfile
|
|
|
|
|
|
def main() -> int:
|
|
"""Run the vendoring utility. See module-level docstring."""
|
|
loud = False
|
|
if os.environ.get("DEBUG") or os.environ.get("V"):
|
|
loud = True
|
|
|
|
# No options or anything for now, but I guess
|
|
# you'll figure that out when you run --help.
|
|
parser = argparse.ArgumentParser(
|
|
prog="vendor",
|
|
description="QEMU python vendoring utility",
|
|
)
|
|
parser.parse_args()
|
|
|
|
packages = {
|
|
"meson==1.8.1":
|
|
"374bbf71247e629475fc10b0bd2ef66fc418c2d8f4890572f74de0f97d0d42da",
|
|
}
|
|
|
|
vendor_dir = Path(__file__, "..", "..", "wheels").resolve()
|
|
|
|
with tempfile.NamedTemporaryFile(mode="w", encoding="utf-8") as file:
|
|
for dep_spec, checksum in packages.items():
|
|
print(f"{dep_spec} --hash=sha256:{checksum}", file=file)
|
|
file.flush()
|
|
|
|
cli_args = [
|
|
"pip",
|
|
"download",
|
|
"--dest",
|
|
str(vendor_dir),
|
|
"--require-hashes",
|
|
"-r",
|
|
file.name,
|
|
]
|
|
if loud:
|
|
cli_args.append("-v")
|
|
|
|
print(" ".join(cli_args))
|
|
subprocess.run(cli_args, check=True)
|
|
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|