Chinaunix首页 | 论坛 | 博客
  • 博客访问: 640186
  • 博文数量: 90
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 2018
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-03 13:09
文章分类

全部博文(90)

文章存档

2010年(7)

2009年(23)

2008年(60)

我的朋友

分类: LINUX

2009-04-06 17:34:14

在bitbake 1.8.12 changlog中有这样的一节:
      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,避免每次都重复手工输入命令,而且灵活性很强。
阅读(2649) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~