--cfgs='proc_macro2=$(proc_macro2-cfgs)' \
--cfgs='quote=$(quote-cfgs)' \
--cfgs='syn=$(syn-cfgs)' \
+ --cfgs='pin_init_internal=$(pin_init_internal-cfgs)' \
+ --cfgs='pin_init=$(pin_init-cfgs)' \
$(realpath $(srctree)) $(realpath $(objtree)) \
$(rustc_sysroot) $(RUST_LIB_SRC) $(if $(KBUILD_EXTMOD),$(srcroot)) \
> rust-project.json
is_workspace_member: Optional[bool],
edition: Optional[str],
) -> Crate:
- cfg = cfg if cfg is not None else []
+ cfg = cfg if cfg is not None else crates_cfgs.get(display_name, [])
is_workspace_member = (
is_workspace_member if is_workspace_member is not None else True
)
# NB: sysroot crates reexport items from one another so setting up our transitive dependencies
# here is important for ensuring that rust-analyzer can resolve symbols. The sources of truth
# for this dependency graph are `(sysroot_src / crate / "Cargo.toml" for crate in crates)`.
- core = append_sysroot_crate("core", [], cfg=crates_cfgs.get("core", []))
+ core = append_sysroot_crate("core", [])
alloc = append_sysroot_crate("alloc", [core])
std = append_sysroot_crate("std", [alloc, core])
proc_macro = append_sysroot_crate("proc_macro", [core, std])
"proc_macro2",
srctree / "rust" / "proc-macro2" / "lib.rs",
[core, alloc, std, proc_macro],
- cfg=crates_cfgs["proc_macro2"],
)
quote = append_crate(
"quote",
srctree / "rust" / "quote" / "lib.rs",
[core, alloc, std, proc_macro, proc_macro2],
- cfg=crates_cfgs["quote"],
edition="2018",
)
"syn",
srctree / "rust" / "syn" / "lib.rs",
[std, proc_macro, proc_macro2, quote],
- cfg=crates_cfgs["syn"],
)
macros = append_proc_macro_crate(
"pin_init_internal",
srctree / "rust" / "pin-init" / "internal" / "src" / "lib.rs",
[std, proc_macro, proc_macro2, quote, syn],
- cfg=["kernel"],
)
pin_init = append_crate(
"pin_init",
srctree / "rust" / "pin-init" / "src" / "lib.rs",
[core, compiler_builtins, pin_init_internal, macros],
- cfg=["kernel"],
)
ffi = append_crate(