根据变量值排除 yocto 元层
Excluding yocto meta-layer depending on a variable value
我正在为个人项目使用 yocto。我有一个名为 meta-nightcore
的图层,它有几个用不同语言编写的文件:bash、Python、C、C++ 和几个食谱。
是否可以在用户定义变量 NIGHTCORE_ENABLED
时调用 bitbake <image_name>
时排除 meta-nightcore
?此变量在调用 source oe-init-build-env
.
之前通过 shell 命令设置
如果你有不同的想法,可以分享吗?
谢谢,祝好,
陈维
是的,您可以 pass your environment variable into the build environment 然后使用它有条件地添加额外的图层。
您需要修改 bblayers.conf
以存储 NIGHTCORE_ENABLED
的默认值,并在 BBLAYERS
设置为 [= 时将额外层添加到 BBLAYERS
15=]:
NIGHTCORE_ENABLED ?= "0" # overridden by env if specified in BB_ENV_EXTRAWHITE
NIGHTCORE_LAYERS ?= "/path/to/poky/meta-nightcore"
BBLAYERS ?= " \
/path/to/poky/meta \
/path/to/poky/meta-poky \
/path/to/poky/meta-yocto-bsp \
${@bb.utils.contains('NIGHTCORE_ENABLED', '1', '${NIGHTCORE_LAYERS}', '', d)} \
"
然后,您需要通过将环境变量添加到 BB_ENV_EXTRAWHITE
:
来告诉 Bitbake 允许将您的环境变量捕获到 Bitbake 数据存储中
export NIGHTCORE_ENABLED=1
export BB_ENV_EXTRAWHITE="${BB_ENV_EXTRAWHITE} NIGHTCORE_ENABLED"
然后您可以 运行 bitbake <image_name>
.
因为bblayers.conf
通常是在source oe-init-build-env
第一次为运行时生成的,你可能希望use TEMPLATECONF
to create a bblayers.conf.sample
file已经包含了这个额外的逻辑。
这里也有一些相关的回答:
Is it possible to pass in command line variables to a bitbake build?
我正在为个人项目使用 yocto。我有一个名为 meta-nightcore
的图层,它有几个用不同语言编写的文件:bash、Python、C、C++ 和几个食谱。
是否可以在用户定义变量 NIGHTCORE_ENABLED
时调用 bitbake <image_name>
时排除 meta-nightcore
?此变量在调用 source oe-init-build-env
.
如果你有不同的想法,可以分享吗?
谢谢,祝好, 陈维
是的,您可以 pass your environment variable into the build environment 然后使用它有条件地添加额外的图层。
您需要修改 bblayers.conf
以存储 NIGHTCORE_ENABLED
的默认值,并在 BBLAYERS
设置为 [= 时将额外层添加到 BBLAYERS
15=]:
NIGHTCORE_ENABLED ?= "0" # overridden by env if specified in BB_ENV_EXTRAWHITE
NIGHTCORE_LAYERS ?= "/path/to/poky/meta-nightcore"
BBLAYERS ?= " \
/path/to/poky/meta \
/path/to/poky/meta-poky \
/path/to/poky/meta-yocto-bsp \
${@bb.utils.contains('NIGHTCORE_ENABLED', '1', '${NIGHTCORE_LAYERS}', '', d)} \
"
然后,您需要通过将环境变量添加到 BB_ENV_EXTRAWHITE
:
export NIGHTCORE_ENABLED=1
export BB_ENV_EXTRAWHITE="${BB_ENV_EXTRAWHITE} NIGHTCORE_ENABLED"
然后您可以 运行 bitbake <image_name>
.
因为bblayers.conf
通常是在source oe-init-build-env
第一次为运行时生成的,你可能希望use TEMPLATECONF
to create a bblayers.conf.sample
file已经包含了这个额外的逻辑。
这里也有一些相关的回答:
Is it possible to pass in command line variables to a bitbake build?