Yocto - 从 -dev 包中排除文件

Yocto - exclude files from -dev package

我在将一些头文件从 FILES_${PN}-dev 移动到自定义开发内部包时遇到了很大的问题。

在 OpenEmbedded 文档中明确指出存在 "no actual support for explicitly excluding files from packaging"。

我试过这个:

FILES_${PN}-dev = ""
PACKAGES += "${PN}-dev-internal"
FILES_${PN}-dev-internal = "${includedir}/<my-pattern>.h"
FILES_${PN}-dev = "<original-content>"

但似乎第一个定义的包首先捕获。

是否有任何已知的解决方法?除了在两个包内容中明确命名所有内容之外,这是非常非常不受欢迎的。

您或许可以更改组件安装配置以更好地分隔 headers(例如,将它们放在不同的目录中)。

but it seems that the first defined package captures first anyway.

是的。所以在PACKAGES中把PN-dev-internal放在PN-dev之前。这可能有效:

PACKAGES =+ "${PN}-dev-internal"

如果没有,PACKAGE_BEFORE_PN有用。