summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>2010-03-21 23:02:56 +0100
committerChris Larson <chris_larson@mentor.com>2010-04-09 07:53:28 -0700
commitf1c7fe9fc12161ceb3fe201cde370b929b208729 (patch)
treee5fd8750b169d295611d6089bac0564e16797f12
parentc4e31d7fe1d15a1e3ef2a453e7c7812d403d22cb (diff)
downloadbitbake-f1c7fe9fc12161ceb3fe201cde370b929b208729.tar.gz
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. Signed-off-by: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-rw-r--r--lib/bb/cache.py1
-rw-r--r--lib/bb/cooker.py14
2 files changed, 11 insertions, 4 deletions
diff --git a/lib/bb/cache.py b/lib/bb/cache.py
index f3ba714d4..30857864d 100644
--- a/lib/bb/cache.py
+++ b/lib/bb/cache.py
@@ -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:
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 3881df484..721fa8e37 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -641,13 +641,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)