summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Bartosh <ed.bartosh@linux.intel.com>2017-01-19 16:18:28 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-01-23 12:03:52 +0000
commite4269fdb4c3ef06b97df063f8586f74986215c83 (patch)
tree1348152413356bf1f104ff2bf1f95226026dac78
parent897fe85d34302953c98d07ade4fa2dd749ae2d22 (diff)
downloadopenembedded-core-e4269fdb4c3ef06b97df063f8586f74986215c83.tar.gz
openembedded-core-e4269fdb4c3ef06b97df063f8586f74986215c83.tar.bz2
openembedded-core-e4269fdb4c3ef06b97df063f8586f74986215c83.zip
wic: misc.py: add parameter 'cache' to get_bitbake_vars
This parameter will be used to allow or prevent variable caching. For example, we don't want to cache value of RECIPE_SYSROOT_NATIVE wic-tools variable as we may decide to rebuild wic-tools. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
-rw-r--r--scripts/lib/wic/utils/oe/misc.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/scripts/lib/wic/utils/oe/misc.py b/scripts/lib/wic/utils/oe/misc.py
index 445109a03d..3737c4b1f0 100644
--- a/scripts/lib/wic/utils/oe/misc.py
+++ b/scripts/lib/wic/utils/oe/misc.py
@@ -160,7 +160,7 @@ class BitbakeVars(defaultdict):
key, val = match.groups()
self[image][key] = val.strip('"')
- def get_var(self, var, image=None):
+ def get_var(self, var, image=None, cache=True):
"""
Get bitbake variable from 'bitbake -e' output or from .env file.
This is a lazy method, i.e. it runs bitbake or parses file only when
@@ -202,21 +202,26 @@ class BitbakeVars(defaultdict):
self._parse_line(line, image)
# Make first image a default set of variables
- images = [key for key in self if key]
- if len(images) == 1:
- self[None] = self[image]
+ if cache:
+ images = [key for key in self if key]
+ if len(images) == 1:
+ self[None] = self[image]
- return self[image].get(var)
+ result = self[image].get(var)
+ if not cache:
+ self.pop(image, None)
+
+ return result
# Create BB_VARS singleton
BB_VARS = BitbakeVars()
-def get_bitbake_var(var, image=None):
+def get_bitbake_var(var, image=None, cache=True):
"""
Provide old get_bitbake_var API by wrapping
get_var method of BB_VARS singleton.
"""
- return BB_VARS.get_var(var, image)
+ return BB_VARS.get_var(var, image, cache)
def parse_sourceparams(sourceparams):
"""