[PATCH v6 12/13] scripts: generate_rust_analyzer.py: define scripts
From: Tamir Duberstein
Date: Thu Apr 24 2025 - 06:45:45 EST
Generate rust-project.json entries for scripts written in Rust. This is
possible now that we have a definition for `std` built for the host.
Use `Pathlib.path.stem` for consistency.
Reviewed-by: Daniel Almeida <daniel.almeida@xxxxxxxxxxxxx>
Tested-by: Daniel Almeida <daniel.almeida@xxxxxxxxxxxxx>
Reviewed-by: Fiona Behrens <me@xxxxxxxxxx>
Reviewed-by: Trevor Gross <tmgross@xxxxxxxxx>
Signed-off-by: Tamir Duberstein <tamird@xxxxxxxxx>
---
scripts/generate_rust_analyzer.py | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_analyzer.py
index 93b96b219a42..5f04e3785854 100755
--- a/scripts/generate_rust_analyzer.py
+++ b/scripts/generate_rust_analyzer.py
@@ -257,6 +257,19 @@ def generate_crates(
cfg=[],
)
+ scripts = srctree / "scripts"
+ makefile = (scripts / "Makefile").read_text()
+ for path in scripts.glob("*.rs"):
+ name = path.stem
+ if f"{name}-rust" not in makefile:
+ continue
+ _script = append_crate(
+ name,
+ path,
+ deps=[host_std],
+ cfg=[],
+ )
+
def is_root_crate(build_file: pathlib.Path, target: str) -> bool:
try:
with open(build_file) as f:
@@ -273,7 +286,7 @@ def generate_crates(
for folder in extra_dirs:
for path in folder.rglob("*.rs"):
logging.info("Checking %s", path)
- name = path.name.replace(".rs", "")
+ name = path.stem
# Skip those that are not crate roots.
if not is_root_crate(path.parent / "Makefile", name) and \
--
2.49.0