博客
关于我
BitBake用户手册-3.语法和操作
阅读量:352 次
发布时间:2019-03-04

本文共 4448 字,大约阅读时间需要 14 分钟。

BitBake ??????????

BitBake ??????????????????????????????????????????????????????? BitBake ??????????????????????


3. ?????

3.1 ????

BitBake ???????????????????????????? BitBake ????????

3.1.1 ??????

??????? VARIABLE ??? "value"??????????????

VARIABLE = "value"

?????????????????????

VARIABLE = " value"VARIABLE = "value "

????????????????

VARIABLE = ""VARIABLE = " "

??????????????????????

VARIABLE = 'I have a " in my value'

???? Bourne shell ???BitBake ?????????????????????????

3.1.2 ???????

????????????????????????????????

  • ????????????
  • ?? *.bbclass ?????????????
  • ?? *.bbappend ??????????????????
  • ??????????????????????

????????????????????????????????????????????????????

3.1.3 ??

BitBake ???????? (\) ??????????????

FOO = "bar \       baz \       qaz"

?????????????????????FOO ???????????

3.1.4 ????

???????? Bourne shell ?????????????????????

A = "ava"B = "pre${A}post"

???? Bourne shell ???BitBake ????????????? (${})???? $?

????????????????????????????????

A = "${B} baz"B = "pre"C = "foo"

???????${A} ???? "pre foo"?

3.1.5 ????? (?=)

????? ?= ?????????????????????????????????

A ?= "aval"

????????????? ?= ??????????????

3.1.6 ?????? (??=)

???? ??= ???????????????? ?= ????????????????????

A ??= "somevalue"A ??= "someothervalue"

?????????? A?????????????? A????????? "someothervalue"?

3.1.7 ?????? (:=)

:= ?????????????????????????????

T = "123"A := "test ${T}"T = "456"B := "${T} ${C}"C = "cval"C := "${C}append"

????????? T ????? "456"?A ???? "test123"??? B ??? "456 cvalappend"?

3.1.8 ?????? (+=) ??? (+=)

??????????? += ? += ??????????????????????????

B = "bval"B += "additionaldata"C = "cval"C =+ "test"

??????

  • B = "bval Extradata"
  • C = "test cval"
3.1.9 ??????? (=.) ??? (=.)

??????????????????????? =.= ? =. ????

B = "bval"B .= "additionaldata"C = "cval"C =. "test"

??????

  • B = "bvaladditionaldata"
  • C = "testcval"
3.1.10 ???????????

????????????????????????????? += ? =+ ??????????????????

B_append = "additionaldata"C_prepend = "additional data "D_append = "additional data"

??????

  • B = "bval additional data"
  • C = "additional data cval"
  • D = "dvaladditional data"

??????????????????????

3.1.11 ??????????

????????????????????????????????????????????

FOO = "123 456 789 123456 123 456 123 456"FOO_remove = "123"FOO_remove = "456"

???

  • FOO = "789 123456"

3.2 ?????????

????? export ????????????????????????

export ENV_VARIABLEENV_VARIABLE = "value from the environment"

????????????????????????

bitbake -e

??????????????????? "export" ???


3.3 ????????

BitBake ?? OVERRIDES ??????????? OVERRIDES ??????

3.3.1 ?????

OVERRIDES ???????????????????????????

OVERRIDES = "architecture:os:machine"TEST = "default"TEST_os = "osspecific"

???????BitBake ?????? OVERRIDES ?????????????

3.3.2 key ??

? BitBake ??????????? key ??????

A${B} = "X"B = "2"A2 = "Y"

???????BitBake ??? ${B} ? "2"??? A2 ???? "X"?


3.4 ?????Sharing Functionality?

BitBake ?????????????????????????????

3.4.1 ?? Include ??? Class ??

BitBake ?? BBPATH ?????????????BBPATH ??????? PATH?

3.4.2 inherit ??

?????????? inherit ???????????????

inherit autotools

BitBake ?? BBPATH ??? classes/autotools.bbclass ???

3.4.3 include ??

include ?????????????????

include test_defs.inc

???????????include ?????????????? require ??? include?????????

3.4.4 require ??

require ??? include ???????????????????????

require foo.inc

3.4.5 INHERIT ????

???????? INHERIT ????????????

INHERIT += "abc"

3.5 ??

BitBake ?? Shell ???BitBake ??? Python ???Python ????? Python ???

3.5.1 Shell ??

Shell ?????

some_function () {    echo "Hello World"}

3.5.2 BitBake ??? Python ??

BitBake ??? Python ?????

python some_python_function () {    d.setVar("TEXT", "Hello World")    print(d.getVar("TEXT"))}

3.5.3 Python ??

?? Python ?????

def get_depends(d):    if d.getVar('SOMECONDITION'):        return "dependencywithcond"    else:        return "dependency"DEPENDS = "${@get_depends(d)}"

3.6 ??

??? BitBake ????????? BitBake ?????????? do_ ???

3.6.1 ???????

?????

addtask printdate after do_fetch before do_build

3.6.2 ????

???????

deltask printdate

3.7 ????

?????varflags???????????????????????

  • [cleandirs]?????????????
  • [depends]???????????
  • [dirs]????????????

3.8 ??

BitBake ??????????????????????????

  • bb.event.BuildStarted()
  • bb.build.TaskStarted()
  • bb.event.ConfigParsed()

3.9 ??-?????

BitBake ???? BBCLASSEXTEND ? BBVERSIONS ????????????

BBCLASSEXTEND = "native"BBVERSIONS = "1.0 2.0 git"

3.10 ??

BitBake ???????????????????

do_configure[deptask] = "do_populate_sysroot"

?????????????????? BitBake ?????????

转载地址:http://nvkr.baihongyu.com/

你可能感兴趣的文章
Python 接口自动化测试中的深拷贝与浅拷贝~
查看>>
Python 接口自动化测试中的高阶函数
查看>>
python 控制 cmd 命令行颜色
查看>>
Python 操作 Azure Blob Storage
查看>>
Python 操作 Excel 全攻略 | 包括读取、写入、表格操作、图像输出和字体设置
查看>>
Python 操作 JMeter 探索:pymeter 实操指南
查看>>
Python 操作 Redis
查看>>
Python 操作Mysql(PyMysql)
查看>>
Python 操作Redis
查看>>
Python 操作sqlite数据库及保存查询numpy类型数据(一)
查看>>
Python 操作sqlite数据库及保存查询numpy类型数据(二)
查看>>
Python 操作数据库
查看>>
Python 数据分析与可视化实战
查看>>
python 数据可视化 -- matplotlib02
查看>>
python 数据可视化利器
查看>>
Python 数据可视化详解
查看>>
python 数据库查询返回list或tuple
查看>>
Python 数据库连接池管理的基本知识 (附Demo)
查看>>
Python 数据库骚操作 -- MySQL
查看>>
Python 数据操作详解
查看>>