summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-04-10 10:50:16 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-05-06 15:28:46 +0100
commitddf498b487fae35a36c3cd095f110fa6da5ded40 (patch)
treeb6554f07a156be8879704512f15c32caf37a8efe
parentc3dd4fd5c9fe106f7fae8c088e75cfb70f20e107 (diff)
downloadbitbake-ddf498b487fae35a36c3cd095f110fa6da5ded40.tar.gz
bitbake/ast.py: Only run finalise() for the specified variant
Allows the heavy finalise function to only be run for the case we're interested in when running tasks, saving some processing time. (From Poky rev: 9211fd9c375489c73924fd43f1f8a0da2c4290bb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/cache.py1
-rw-r--r--lib/bb/parse/ast.py8
2 files changed, 7 insertions, 2 deletions
diff --git a/lib/bb/cache.py b/lib/bb/cache.py
index 2d04ee77c..6e3a6124d 100644
--- a/lib/bb/cache.py
+++ b/lib/bb/cache.py
@@ -294,6 +294,7 @@ class Cache(object):
logger.debug(1, "Parsing %s (full)", fn)
+ cfgData.setVar("__ONLYFINALISE", virtual or "default")
bb_data = cls.load_bbfile(fn, appends, cfgData)
return bb_data[virtual]
diff --git a/lib/bb/parse/ast.py b/lib/bb/parse/ast.py
index b968db40b..375dc6163 100644
--- a/lib/bb/parse/ast.py
+++ b/lib/bb/parse/ast.py
@@ -369,10 +369,13 @@ def multi_finalize(fn, d):
logger.debug(2, "Appending .bbappend file %s to %s", append, fn)
bb.parse.BBHandler.handle(append, d, True)
+ onlyfinalise = d.getVar("__ONLYFINALISE", False)
+
safe_d = d
d = bb.data.createCopy(safe_d)
try:
- finalize(fn, d)
+ if not onlyfinalise or "default" in onlyfinalise:
+ finalize(fn, d)
except bb.parse.SkipPackage:
bb.data.setVar("__SKIPPED", True, d)
datastores = {"": safe_d}
@@ -434,7 +437,8 @@ def multi_finalize(fn, d):
for variant, variant_d in datastores.iteritems():
if variant:
try:
- finalize(fn, variant_d, variant)
+ if not onlyfinalise or variant in onlyfinalise:
+ finalize(fn, variant_d, variant)
except bb.parse.SkipPackage:
bb.data.setVar("__SKIPPED", True, variant_d)