bitbake变量

在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,避免每次都重复手工输入命令,而且灵活性很强。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值