如何确定 yocto 发行版中哪些内容依赖于 Rust?

问题描述 投票:0回答:1

我想确定我的 kirkstone yocto 发行版中的哪些内容依赖于 Rust。我很好奇,因为构建 rust llvm 和 rust 本机包需要大量时间。如果不需要加快构建时间,我很乐意消除这些东西。当我说“事物”时,我指的是(但不限于)用户空间应用程序以及内核的一部分,例如设备驱动程序。

我怎样才能做到这一点?

rust yocto bitbake openembedded
1个回答
0
投票

几乎肯定是 librsvg(GTK 的依赖项)或 python3-cryptography。

简单/hacky 的方法是设置

SKIP_RECIPE[rust-native] = "skip"
并构建你的图像,这将列出不能再构建的内容。

更好的方法是将任务依赖关系作为图表转储到磁盘:

$ bitbake --graphviz core-image-sato

然后你

oe-depends-dot
来分析图表:

$ oe-depends-dot --why --key rust-native task-depends.dot
Because: cargo-native core-image-sato librsvg-native librsvg libstd-rs gstreamer1 gtk4 vte matchbox-terminal packagegroup-core-x11-base packagegroup-core-x11-sato gst-examples adwaita-icon-theme gtk+3 pcmanfm connman-gnome l3afpad libfm matchbox-config-gtk matchbox-desktop matchbox-keyboard matchbox-panel-2 puzzles sato-icon-theme sato-screenshot settings-daemon matchbox-session-sato
[ ... ]
core-image-sato -> vte -> gtk4 -> adwaita-icon-theme -> librsvg-native -> cargo-native -> rust-native
core-image-sato -> gst-examples -> gstreamer1 -> librsvg -> libstd-rs -> cargo-native -> rust-native

这里的常用方法是 librsvg,它为 GTK 和 GStreamer 提供 SVG 渲染,并且是用 Rust 编写的。

正确的状态解决方案意味着如果您使用的是稳定版本,则只需构建 Rust 一次。

© www.soinside.com 2019 - 2024. All rights reserved.