From d08eb8a983ad64327c18166bd0a30e56b741bd13 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sun, 13 Aug 2006 23:56:42 +0000 Subject: trunk/bitbake/bin/bitbake: * Add some variables to the data cache * Move self.preferred into the same place as other similar cache data trunk/bitbake/lib/bb/cache.py: * Bump cache version number --- bin/bitbake | 24 ++++++++++++++++-------- lib/bb/cache.py | 3 +-- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/bin/bitbake b/bin/bitbake index e5f152757..110d6d982 100755 --- a/bin/bitbake +++ b/bin/bitbake @@ -59,9 +59,13 @@ class BBParsingStatus: self.pn_provides = {} self.all_depends = Set() self.build_all = {} + self.deps = {} self.rundeps = {} self.runrecs = {} + self.task_queues = {} + self.task_deps = {} self.stamp = {} + self.preferred = {} def handle_bb_data(self, file_name, bb_cache, cached): """ @@ -79,6 +83,9 @@ class BBParsingStatus: packages_dynamic = (bb_cache.getVar('PACKAGES_DYNAMIC', file_name, True) or "").split() rprovides = (bb_cache.getVar("RPROVIDES", file_name, True) or "").split() + self.task_queues[file_name] = bb_cache.getVar("_task_graph", file_name, True) + self.task_deps[file_name] = bb_cache.getVar("_task_deps", file_name, True) + # build PackageName to FileName lookup table if pn not in self.pkg_pn: self.pkg_pn[pn] = [] @@ -104,8 +111,10 @@ class BBParsingStatus: self.providers[provide] = [] self.providers[provide].append(file_name) + self.deps[file_name] = Set() for dep in depends: self.all_depends.add(dep) + self.deps[file_name].add(dep) # Build reverse hash for PACKAGES, so runtime dependencies # can be be resolved (RDEPENDS, RRECOMMENDS etc.) @@ -125,7 +134,7 @@ class BBParsingStatus: self.rproviders[rprovide] = [] self.rproviders[rprovide].append(file_name) - # Build hash of runtime depeneds and rececommends + # Build hash of runtime depends and rececommends def add_dep(deplist, deps): for dep in deps: @@ -207,7 +216,6 @@ class BBCooker: self.building_list = [] self.build_path = [] self.consider_msgs_cache = [] - self.preferred = {} self.stats = BBStatistics() self.status = None @@ -570,12 +578,12 @@ class BBCooker: prefervar = bb.data.getVar('PREFERRED_PROVIDER_%s' % item, self.configuration.data, 1) if prefervar: - self.preferred[item] = prefervar + self.status.preferred[item] = prefervar - if item in self.preferred: + if item in self.status.preferred: for p in eligible: pn = self.status.pkg_fn[p] - if self.preferred[item] == pn: + if self.status.preferred[item] == pn: bb.msg.note(2, bb.msg.domain.Provider, "selecting %s to satisfy %s due to PREFERRED_PROVIDERS" % (pn, item)) eligible.remove(p) eligible = [p] + eligible @@ -745,9 +753,9 @@ class BBCooker: # Handle PREFERRED_PROVIDERS for p in (bb.data.getVar('PREFERRED_PROVIDERS', localdata, 1) or "").split(): (providee, provider) = p.split(':') - if providee in self.preferred and self.preferred[providee] != provider: - bb.msg.error(bb.msg.domain.Provider, "conflicting preferences for %s: both %s and %s specified" % (providee, provider, self.preferred[providee])) - self.preferred[providee] = provider + if providee in self.status.preferred and self.status.preferred[providee] != provider: + bb.msg.error(bb.msg.domain.Provider, "conflicting preferences for %s: both %s and %s specified" % (providee, provider, self.status.preferred[providee])) + self.status.preferred[providee] = provider # Calculate priorities for each file for p in self.status.pkg_fn.keys(): diff --git a/lib/bb/cache.py b/lib/bb/cache.py index 627173007..9972f788b 100644 --- a/lib/bb/cache.py +++ b/lib/bb/cache.py @@ -40,8 +40,7 @@ except ImportError: import pickle print "NOTE: Importing cPickle failed. Falling back to a very slow implementation." -# __cache_version__ = "123" -__cache_version__ = "124" # changes the __depends structure +__cache_version__ = "125" class Cache: """ -- cgit 1.2.3-korg