Skip to content

Commit be91a55

Browse files
authored
Merge pull request #488 from Bobo1239/rust-analyzer-updates
Update generate_rust_analyzer.py
2 parents b00d4c3 + 3647bb0 commit be91a55

File tree

2 files changed

+10
-20
lines changed

2 files changed

+10
-20
lines changed

rust/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ rustc_host_target = $(shell $(RUSTC) --version --verbose | grep -F 'host: ' | cu
296296
RUST_LIB_SRC ?= $(rustc_sysroot)/lib/rustlib/src/rust/library
297297

298298
rust-analyzer:
299-
$(Q)$(srctree)/scripts/generate_rust_analyzer.py $(srctree) $(objtree) $(RUST_LIB_SRC) $(objtree)/rust/bindings_generated.rs > $(objtree)/rust-project.json
299+
$(Q)$(srctree)/scripts/generate_rust_analyzer.py $(srctree) $(objtree) $(RUST_LIB_SRC) > $(objtree)/rust-project.json
300300

301301
$(objtree)/rust/compiler_builtins.o: private rustc_objcopy = -w -W '__*'
302302
$(objtree)/rust/compiler_builtins.o: $(srctree)/rust/compiler_builtins.rs \

scripts/generate_rust_analyzer.py

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import pathlib
99
import sys
1010

11-
def generate_crates(srctree, objtree, sysroot_src, bindings_file):
11+
def generate_crates(srctree, objtree, sysroot_src):
1212
# Generate the configuration list.
1313
cfg = []
1414
with open(objtree / "include" / "generated" / "rustc_cfg") as fd:
@@ -23,12 +23,13 @@ def generate_crates(srctree, objtree, sysroot_src, bindings_file):
2323
crates = []
2424
crates_indexes = {}
2525

26-
def append_crate(display_name, root_module, is_workspace_member, deps, cfg):
26+
def append_crate(display_name, root_module, deps, cfg=[], is_workspace_member=True, is_proc_macro=False):
2727
crates_indexes[display_name] = len(crates)
2828
crates.append({
2929
"display_name": display_name,
3030
"root_module": str(root_module),
3131
"is_workspace_member": is_workspace_member,
32+
"is_proc_macro": is_proc_macro,
3233
"deps": [{"crate": crates_indexes[dep], "name": dep} for dep in deps],
3334
"cfg": cfg,
3435
"edition": "2018",
@@ -41,52 +42,43 @@ def append_crate(display_name, root_module, is_workspace_member, deps, cfg):
4142
append_crate(
4243
"core",
4344
sysroot_src / "core" / "src" / "lib.rs",
44-
False,
45-
[],
4645
[],
46+
is_workspace_member=False,
4747
)
4848

4949
append_crate(
5050
"compiler_builtins",
5151
srctree / "rust" / "compiler_builtins.rs",
52-
True,
53-
[],
5452
[],
5553
)
5654

5755
append_crate(
5856
"alloc",
5957
srctree / "rust" / "alloc" / "lib.rs",
60-
True,
6158
["core", "compiler_builtins"],
62-
[],
6359
)
6460

6561
append_crate(
6662
"macros",
6763
srctree / "rust" / "macros" / "lib.rs",
68-
True,
69-
[],
7064
[],
65+
is_proc_macro=True,
7166
)
7267
crates[-1]["proc_macro_dylib_path"] = "rust/libmacros.so"
7368

7469
append_crate(
7570
"build_error",
7671
srctree / "rust" / "build_error.rs",
77-
True,
7872
["core", "compiler_builtins"],
79-
[],
8073
)
8174

8275
append_crate(
8376
"kernel",
8477
srctree / "rust" / "kernel" / "lib.rs",
85-
True,
8678
["core", "alloc", "macros", "build_error"],
87-
cfg,
79+
cfg=cfg,
8880
)
89-
crates[-1]["env"]["RUST_BINDINGS_FILE"] = str(bindings_file.resolve(True))
81+
crates[-1]["env"]["OBJTREE"] = str(objtree.resolve(True))
9082
crates[-1]["source"] = {
9183
"include_dirs": [
9284
str(srctree / "rust" / "kernel"),
@@ -111,9 +103,8 @@ def append_crate(display_name, root_module, is_workspace_member, deps, cfg):
111103
append_crate(
112104
name,
113105
path,
114-
True,
115106
["core", "alloc", "kernel"],
116-
cfg,
107+
cfg=cfg,
117108
)
118109

119110
return crates
@@ -124,7 +115,6 @@ def main():
124115
parser.add_argument("srctree", type=pathlib.Path)
125116
parser.add_argument("objtree", type=pathlib.Path)
126117
parser.add_argument("sysroot_src", type=pathlib.Path)
127-
parser.add_argument("bindings_file", type=pathlib.Path)
128118
args = parser.parse_args()
129119

130120
logging.basicConfig(
@@ -133,7 +123,7 @@ def main():
133123
)
134124

135125
rust_project = {
136-
"crates": generate_crates(args.srctree, args.objtree, args.sysroot_src, args.bindings_file),
126+
"crates": generate_crates(args.srctree, args.objtree, args.sysroot_src),
137127
"sysroot_src": str(args.sysroot_src),
138128
}
139129

0 commit comments

Comments
 (0)