yocto - Yocto:如何根据两个选项值确定 SRC_URI 值
问题描述
我有一个包的 yocto 配方,其中我有功能 A 和子功能 AA 和 AB。所有这些(功能和子功能)在映像配置文件上都有自己的启用标志。既然它们都可以独立启用,我如何保证只有在主功能也启用的情况下才考虑子功能?
PACKAGECONFIG_append = "${@bb.utils.contains('A', 'y', ' a_is_enabled', '', d)}"
PACKAGECONFIG[a_is_enabled] = "-DENABLE_FEATURE_A=ON,-DENABLE_FEATURE_A=OFF,,"
SRC_URI += "${@bb.utils.contains('A', 'y', 'file://files_for_A', '', d)}"
SRC_URI += "${@bb.utils.contains('AA', 'y', 'file://files_for_AA', '', d)}"
SRC_URI += "${@bb.utils.contains('AB', 'y', 'file://files_for_AB', '', d)}"
这是一个故障保险,以防图像配置文件被弄乱了!
提前致谢!
解决方案
为了使AA
或AB
依赖A
,创建一个临时变量
EVAL_AA = "${@bb.utils.contains('AA', 'y', 'file://files_for_AA', '', d)}"
然后,通过立即变量扩展:
SRC_URI_append := "${@bb.utils.contains('A', 'y', '${EVAL_AA}', '', d)}"
如果AB
取决于AA
启用:
EVAL_AB = "${@bb.utils.contains('AB', 'y', 'file://files_for_AB', '', d)}"
EVAL_AB := "${@bb.utils.contains('AA', 'y', '${EVAL_AB}', '', d)}"
SRC_URI_append := "${@bb.utils.contains('A', 'y', '${EVAL_AB}', '', d)}"
不漂亮,但它有效!是这样吗?或者...有一个更漂亮或更简单的吗?