Made '-b' work with BBCLASSEXTEND

When BBCLASSEXTEND is set, '-b' builds usually failed with messages
like

| ERROR: Parsing error data_fn virtual:native:<recipe>.bb and fn
<recipe>.bb don't match
|
|   File ".../bb/providers.py", line 47, in sortPriorities
|     priority = dataCache.bbfile_priority[f]
| KeyError: 'virtual:native:<recipe>.bb'

This patch fixes it and allows to specify the alternative class in a
way like

| ./bitbake -b virtual:native:<recipe>.bb

This patch was written to be so minimal as possible; variables should be
probably renamed to reflect their new meaning.

(Bitbake rev: f1c7fe9fc12161ceb3fe201cde370b929b208729)

Signed-off-by: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
Enrico Scholz 2010-03-21 23:02:56 +01:00 committed by Richard Purdie
parent a7f05ea4af
commit ca9a956abc
2 changed files with 11 additions and 4 deletions

View File

@ -137,6 +137,7 @@ class Cache:
# If we're a virtual class we need to make sure all our depends are appended
# to the depends of fn.
depends = self.getVar("__depends", virtualfn, True) or []
self.depends_cache.setdefault(fn, {})
if "__depends" not in self.depends_cache[fn] or not self.depends_cache[fn]["__depends"]:
self.depends_cache[fn]["__depends"] = depends
for dep in depends:

View File

@ -630,13 +630,19 @@ class BBCooker:
if (task == None):
task = self.configuration.cmd
fn = self.matchFile(buildfile)
self.bb_cache = bb.cache.init(self)
self.status = bb.cache.CacheData()
(fn, cls) = self.bb_cache.virtualfn2realfn(buildfile)
buildfile = self.matchFile(fn)
fn = self.bb_cache.realfn2virtual(buildfile, cls)
self.buildSetVars()
# Load data into the cache for fn and parse the loaded cache data
self.bb_cache = bb.cache.init(self)
self.status = bb.cache.CacheData()
self.bb_cache.loadData(fn, self.configuration.data, self.status)
the_data = self.bb_cache.loadDataFull(fn, self.configuration.data)
self.bb_cache.setData(fn, buildfile, the_data)
self.bb_cache.handle_data(fn, self.status)
# Tweak some variables
item = self.bb_cache.getVar('PN', fn, True)