summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/cache.py
diff options
context:
space:
mode:
authorChris Larson <chris_larson@mentor.com>2011-01-07 08:38:41 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-01-10 13:24:03 +0000
commitf305e95840a887bbd97e9003e7a0f9135df77fcb (patch)
tree4097812a83b4b34d7e056260ca16a1c6457988f7 /bitbake/lib/bb/cache.py
parentb22e345e05efcc3f66278af8f09fb083afe32b68 (diff)
downloadpoky-f305e95840a887bbd97e9003e7a0f9135df77fcb.tar.gz
cache: don't expand variables for skipped recipes
Errors can result from these expansions, but for skipped recipes, we shouldn't care about those failures. This fixes the same issue which Richard Purdie fixed in poky, commit 847b717. (Bitbake rev: 96ee6840010c1ae1080e6bf7ff0f4eb2d361e84b) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/cache.py')
-rw-r--r--bitbake/lib/bb/cache.py23
1 files changed, 13 insertions, 10 deletions
diff --git a/bitbake/lib/bb/cache.py b/bitbake/lib/bb/cache.py
index cde136083a..9a2e2d5298 100644
--- a/bitbake/lib/bb/cache.py
+++ b/bitbake/lib/bb/cache.py
@@ -106,7 +106,19 @@ class RecipeInfo(namedtuple('RecipeInfo', recipe_fields)):
106 return metadata.getVar(var, True) or '' 106 return metadata.getVar(var, True) or ''
107 107
108 @classmethod 108 @classmethod
109 def make_optional(cls, default=None, **kwargs):
110 """Construct the namedtuple from the specified keyword arguments,
111 with every value considered optional, using the default value if
112 it was not specified."""
113 for field in cls._fields:
114 kwargs[field] = kwargs.get(field, default)
115 return cls(**kwargs)
116
117 @classmethod
109 def from_metadata(cls, filename, metadata): 118 def from_metadata(cls, filename, metadata):
119 if cls.getvar('__SKIPPED', metadata):
120 return cls.make_optional(skipped=True)
121
110 tasks = metadata.getVar('__BBTASKS', False) 122 tasks = metadata.getVar('__BBTASKS', False)
111 123
112 pn = cls.getvar('PN', metadata) 124 pn = cls.getvar('PN', metadata)
@@ -114,15 +126,6 @@ class RecipeInfo(namedtuple('RecipeInfo', recipe_fields)):
114 if not pn in packages: 126 if not pn in packages:
115 packages.append(pn) 127 packages.append(pn)
116 128
117 skip = cls.getvar('__SKIPPED', metadata)
118 if skip:
119 return RecipeInfo(None, None, None, None, None,
120 None, None, None, None, None,
121 None, skip, None, None, None,
122 None, None, None, None, None,
123 None, None, None, None, None,
124 None, None)
125
126 return RecipeInfo( 129 return RecipeInfo(
127 tasks = tasks, 130 tasks = tasks,
128 basetaskhashes = cls.taskvar('BB_BASEHASH', tasks, metadata), 131 basetaskhashes = cls.taskvar('BB_BASEHASH', tasks, metadata),
@@ -133,7 +136,7 @@ class RecipeInfo(namedtuple('RecipeInfo', recipe_fields)):
133 {'tasks': [], 'parents': {}}, 136 {'tasks': [], 'parents': {}},
134 variants = cls.listvar('__VARIANTS', metadata) + [''], 137 variants = cls.listvar('__VARIANTS', metadata) + [''],
135 138
136 skipped = skip, 139 skipped = False,
137 timestamp = bb.parse.cached_mtime(filename), 140 timestamp = bb.parse.cached_mtime(filename),
138 packages = cls.listvar('PACKAGES', metadata), 141 packages = cls.listvar('PACKAGES', metadata),
139 pn = pn, 142 pn = pn,