Yocto 使用某些变量可能需要使用写选择判断,layer openembeded-core 专用接口,可以直接使用。
ABC = “${@bb.utils.contains('val', 1', 'true', 'false ', d)}"
val = 1 则 ABC 赋值 true,否则 ABC 赋值 false
实际举例如下:
CFLAGS_prepend = "${@bb.utils.contains('GCCVERSION', '4.6.3', ' -std=c99', ' ', d)}"
实现功能:
如果 'GCCVERSION' = '4.6.3' 则 CFLAGS_prepend 赋值为 ' -std=c99' ,否则 CFLAGS_prepend 赋值为空。
注意事项:
1) 是'GCCVERSION' 而不是 ${GCCVERSION'}
2) 红色位置$ 一定要加。
其他举例:(红色$ 表示本意)
LDFLAGS_prepend = "${@bb.utils.contains('GCCVERSION', '4.6.3', ' -L${COMPONENTS_DIR}/${PACKAGE_ARCH}/libnsl2-external/usr/lib ', '', d)}"