Yocto中的变量解析如何工作?

时间:2017-09-12 18:21:36

标签: parsing yocto bitbake openembedded

我只是在不知道它做什么的情况下使用了一些变量。有人可以解释Yocto中所有这些解析背后的逻辑吗?

下划线做什么? _append_pn以外的可用参数是什么?

PACKAGECONFIG_append_pn-packagename = " packagename"

PREFERRED_VERSION_linux-imx_mx6 = "3.10.17"

SRC_URI_append_toolchain-clang = " file://0004-Remove-clang-unsupported-compiler-flags.patch "

EXTRA_OECONF_append_arm = " --enable-fpm=arm"

这个怎么样?我知道以这种方式添加是单个包,但它是如何工作的?

LICENSE_FLAGS_WHITELIST_append = " commerical_packagename"

有人还提到了一些对他们有用的奇怪之处:bitbake: how to add package depending on MACHINE?

IMAGE_INSTALL_append_machine1 += " package1"

1 个答案:

答案 0 :(得分:1)

文档非常清楚:https://www.yoctoproject.org/docs/latest/bitbake-user-manual/bitbake-user-manual.html#basic-syntax

较长的版本是_引入了覆盖,这是一种说“做一些特别的事情”而不仅仅是分配的方式。

有些是诸如追加和前置等操作。      FOO =“1”      FOO_append =“2”

FOO现在为“12”,因为2附加到1。

(_ prepend做你期望的)

_remove可用于从以空格分隔的列表中删除项目。

  FOO = "1 2 3"
  FOO_remove = "2"

FOO现在是“1 3”。

pn_ [foo]是特定配方名称的覆盖(历史命名,它表示包名称,但实际上是指配方)。所以你的local.conf可以这样做:

EXTRA_OEMAKE_pn-foo = "bar"

你刚刚为foo食谱设置了EXTRA_OEMAKE,只有foo食谱。

还有其他重写。这些体系结构都有覆盖,因此_arm _x86 _mips等指定赋值特定于这些体系结构。