summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>2010-03-21 23:02:56 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-07-02 15:41:31 +0100
commitca9a956abc6b9b20bc7616c9e9bb2341be2bf5bb (patch)
tree8173b96cfa9cf35e7c9289511b7ba2600cab8e6b
parenta7f05ea4af0aab88cdd8699ed8d73ae3cca04044 (diff)
downloadpoky-ca9a956abc6b9b20bc7616c9e9bb2341be2bf5bb.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. (Bitbake rev: f1c7fe9fc12161ceb3fe201cde370b929b208729) Signed-off-by: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
-rw-r--r--bitbake/lib/bb/cache.py1
-rw-r--r--bitbake/lib/bb/cooker.py14
2 files changed, 11 insertions, 4 deletions
diff --git a/bitbake/lib/bb/cache.py b/bitbake/lib/bb/cache.py
index f3ba714d46..30857864dc 100644
--- a/bitbake/lib/bb/cache.py
+++ b/bitbake/lib/bb/cache.py
@@ -137,6 +137,7 @@ class Cache:
137 # If we're a virtual class we need to make sure all our depends are appended 137 # If we're a virtual class we need to make sure all our depends are appended
138 # to the depends of fn. 138 # to the depends of fn.
139 depends = self.getVar("__depends", virtualfn, True) or [] 139 depends = self.getVar("__depends", virtualfn, True) or []
140 self.depends_cache.setdefault(fn, {})
140 if "__depends" not in self.depends_cache[fn] or not self.depends_cache[fn]["__depends"]: 141 if "__depends" not in self.depends_cache[fn] or not self.depends_cache[fn]["__depends"]:
141 self.depends_cache[fn]["__depends"] = depends 142 self.depends_cache[fn]["__depends"] = depends
142 for dep in depends: 143 for dep in depends:
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index 2406dfe95b..f49e76d04a 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -630,13 +630,19 @@ class BBCooker:
630 if (task == None): 630 if (task == None):
631 task = self.configuration.cmd 631 task = self.configuration.cmd
632 632
633 fn = self.matchFile(buildfile) 633 self.bb_cache = bb.cache.init(self)
634 self.status = bb.cache.CacheData()
635
636 (fn, cls) = self.bb_cache.virtualfn2realfn(buildfile)
637 buildfile = self.matchFile(fn)
638 fn = self.bb_cache.realfn2virtual(buildfile, cls)
639
634 self.buildSetVars() 640 self.buildSetVars()
635 641
636 # Load data into the cache for fn and parse the loaded cache data 642 # Load data into the cache for fn and parse the loaded cache data
637 self.bb_cache = bb.cache.init(self) 643 the_data = self.bb_cache.loadDataFull(fn, self.configuration.data)
638 self.status = bb.cache.CacheData() 644 self.bb_cache.setData(fn, buildfile, the_data)
639 self.bb_cache.loadData(fn, self.configuration.data, self.status) 645 self.bb_cache.handle_data(fn, self.status)
640 646
641 # Tweak some variables 647 # Tweak some variables
642 item = self.bb_cache.getVar('PN', fn, True) 648 item = self.bb_cache.getVar('PN', fn, True)