diff options
| author | Dongxiao Xu <dongxiao.xu@intel.com> | 2012-04-12 23:46:26 +0800 | 
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-04-13 12:04:19 +0100 | 
| commit | 9c1dcdceb235c53b92a64e741f5a5491b1e489bd (patch) | |
| tree | c1f2111a2c7c947c3fd00f7542e104c03d49cf1a /bitbake/lib/bb/ui/crumbs/builder.py | |
| parent | 302f2cc8ce756ab61042f1d904df4d18071a976a (diff) | |
| download | poky-9c1dcdceb235c53b92a64e741f5a5491b1e489bd.tar.gz | |
Hob: Implement Hob config parse hook
To make Hob's specific variable settings take effect, we add a Hob
config hook at the end of parsing for each configuration file, and in
the hook function, Hob will set its own variables to the data store.
This fixes:
[YOCTO #2210]
[YOCTO #2254]
(Bitbake rev: 0ec7d1bbfd2e09ae60f99e6134b20ffd1d9145b1)
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/ui/crumbs/builder.py')
| -rwxr-xr-x | bitbake/lib/bb/ui/crumbs/builder.py | 26 | 
1 files changed, 26 insertions, 0 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/builder.py b/bitbake/lib/bb/ui/crumbs/builder.py index 10b9a77032..410ff5fa85 100755 --- a/bitbake/lib/bb/ui/crumbs/builder.py +++ b/bitbake/lib/bb/ui/crumbs/builder.py  | |||
| @@ -210,6 +210,30 @@ class Parameters: | |||
| 210 | self.tmpdir = params["tmpdir"] | 210 | self.tmpdir = params["tmpdir"] | 
| 211 | self.enable_proxy = False | 211 | self.enable_proxy = False | 
| 212 | 212 | ||
| 213 | def hob_conf_filter(fn, data): | ||
| 214 | if fn.endswith("/local.conf"): | ||
| 215 | distro = data.getVar("DISTRO_HOB") | ||
| 216 | if distro: | ||
| 217 | if distro != "defaultsetup": | ||
| 218 | data.setVar("DISTRO", distro) | ||
| 219 | else: | ||
| 220 | data.delVar("DISTRO") | ||
| 221 | |||
| 222 | keys = ["MACHINE_HOB", "SDKMACHINE_HOB", "PACKAGE_CLASSES_HOB", \ | ||
| 223 | "BB_NUMBER_THREADS_HOB", "PARALLEL_MAKE_HOB", "DL_DIR_HOB", \ | ||
| 224 | "SSTATE_DIR_HOB", "SSTATE_MIRROR_HOB", "INCOMPATIBLE_LICENSE_HOB"] | ||
| 225 | for key in keys: | ||
| 226 | var_hob = data.getVar(key) | ||
| 227 | if var_hob: | ||
| 228 | data.setVar(key.split("_HOB")[0], var_hob) | ||
| 229 | return | ||
| 230 | |||
| 231 | if fn.endswith("/bblayers.conf"): | ||
| 232 | layers = data.getVar("BBLAYERS_HOB") | ||
| 233 | if layers: | ||
| 234 | data.setVar("BBLAYERS", layers) | ||
| 235 | return | ||
| 236 | |||
| 213 | class Builder(gtk.Window): | 237 | class Builder(gtk.Window): | 
| 214 | 238 | ||
| 215 | (MACHINE_SELECTION, | 239 | (MACHINE_SELECTION, | 
| @@ -296,6 +320,8 @@ class Builder(gtk.Window): | |||
| 296 | self.handler.connect("command-succeeded", self.handler_command_succeeded_cb) | 320 | self.handler.connect("command-succeeded", self.handler_command_succeeded_cb) | 
| 297 | self.handler.connect("command-failed", self.handler_command_failed_cb) | 321 | self.handler.connect("command-failed", self.handler_command_failed_cb) | 
| 298 | 322 | ||
| 323 | self.handler.set_config_filter(hob_conf_filter) | ||
| 324 | |||
| 299 | self.initiate_new_build_async() | 325 | self.initiate_new_build_async() | 
| 300 | 326 | ||
| 301 | def create_visual_elements(self): | 327 | def create_visual_elements(self): | 
