Messages in this thread Patch in this message | | | From | Martin Rodriguez Reboredo <> | Subject | [PATCH] scripts: read cfgs from Makefile for rust-analyzer | Date | Wed, 22 Feb 2023 23:59:24 -0300 |
| |
Both `core` and `alloc` had their `cfgs` missing in `rust-project.json`, to remedy this `generate_rust_analyzer.py` scans the Makefile from inside the `rust` directory for them to be added to a dictionary that each key corresponds to a crate and each value, to an array of `cfgs`.
Signed-off-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com> --- scripts/generate_rust_analyzer.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+)
diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_analyzer.py index ecc7ea9a4dcf..8bfadd688ebc 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -9,6 +9,24 @@ import logging import pathlib import sys +def makefile_crate_cfgs(makefile): + # Get configurations from a Makefile. + cfgs = {} + with open(makefile) as fd: + for line in fd: + if line.endswith("-cfgs = \\\n"): + crate = line.replace("-cfgs = \\\n", "") + cfg = [] + for l in map(lambda l: l.strip(), fd): + if not l: + cfgs[crate] = cfg + break + l = l.replace("--cfg ", "") + l = l.replace(" \\", "") + cfg.append(l) + + return cfgs + def generate_crates(srctree, objtree, sysroot_src): # Generate the configuration list. cfg = [] @@ -24,6 +42,8 @@ def generate_crates(srctree, objtree, sysroot_src): crates = [] crates_indexes = {} + makefile_cfgs = makefile_crate_cfgs(srctree / "rust" / "Makefile") + def append_crate(display_name, root_module, deps, cfg=[], is_workspace_member=True, is_proc_macro=False): crates_indexes[display_name] = len(crates) crates.append({ @@ -44,6 +64,7 @@ def generate_crates(srctree, objtree, sysroot_src): "core", sysroot_src / "core" / "src" / "lib.rs", [], + cfg=makefile_cfgs.get("core", []), is_workspace_member=False, ) @@ -57,6 +78,7 @@ def generate_crates(srctree, objtree, sysroot_src): "alloc", srctree / "rust" / "alloc" / "lib.rs", ["core", "compiler_builtins"], + cfg=makefile_cfgs.get("alloc", []), ) append_crate( -- 2.39.2
| |