bitbake变量

来源:互联网 发布:淘宝退货和退款的区别 编辑:程序博客网 时间:2024/06/08 10:30
在bitbake 1.8.12 changlog中有这样的一节:
http://svn.berlios.de/svnroot/repos/bitbake/branches/bitbake-1.8/ChangeLog      Add better environmental variable handling. By default it will now only pass certain whitelisted variables into the data store. If BB_PRESERVE_ENV is set bitbake will use all variable from the environment. If BB_ENV_WHITELIST is set, that whitelist will be used instead of the internal bitbake one. Alternatively, BB_ENV_EXTRAWHITE can be used to extend the internal whitelist.
默认情况下,只有部分特定的环境变量可以得到,具体的就是
def preserved_envvars_list():    return [        'BBPATH',        'BB_PRESERVE_ENV',        'BB_ENV_WHITELIST',        'BB_ENV_EXTRAWHITE',        'COLORTERM',        'DBUS_SESSION_BUS_ADDRESS',        'DESKTOP_SESSION',        'DESKTOP_STARTUP_ID',        'DISPLAY',        'GNOME_KEYRING_PID',        'GNOME_KEYRING_SOCKET',        'GPG_AGENT_INFO',        'GTK_RC_FILES',        'HOME',        'LANG',        'LOGNAME',        'PATH',        'PWD',        'SESSION_MANAGER',        'SHELL',        'SSH_AUTH_SOCK',        'TERM',        'USER',        'USERNAME',        '_',        'XAUTHORITY',        'XDG_DATA_DIRS',        'XDG_SESSION_COOKIE',    ]
除此之外,你将得不到其他的环境变量,比若你export一个OEDIR变量,你想在conf文件或者bbfile文件中拿到这个值,就无法得到,如果想实现这种目的,就必须做些改变。
有这样一个变量BB_PRESERVE_ENV,如果定义了这样一个变量,那么就会保存所有的环境变量,这也是另外一个极端,当然这样就和以前没有实现这种方法一样,但是有些环境变量会影响build过程(尽管我还没有遇到这个问题)
如果你认为默认的bitbake保存的变量不适合你,你可以定义BB_ENV_WHITELIST ,这个就会取代内部默认的环境变量。
如果你只想添加一些你需要的变量,那么你可以使用BB_ENV_EXTRAWHITE,这个就可以扩展bitbake保存的环境变量。比如我想传递一些变量OEDIR PROJDIR等,我就可以这样定义:export BB_ENV_EXTRAWHITE="OEDIR PROJDIR"
了解了上述准则,我们就可以写一些setup openembedded脚本,方便使用OpenEmbedded,避免每次都重复手工输入命令,而且灵活性很强。
0 0
原创粉丝点击