]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
bitbake/ast.py: Only run finalise() for the specified variant
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 10 Apr 2011 17:50:16 +0000 (10:50 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 6 May 2011 14:28:46 +0000 (15:28 +0100)
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>
lib/bb/cache.py
lib/bb/parse/ast.py

index 2d04ee77c0fafa5ccc62a297290723caba50d210..6e3a6124dd0f99a2c4d568327aeb0e6eea62f32e 100644 (file)
@@ -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]
 
index b968db40b378378216aae3fd670153df4c2490a8..375dc616302312c11ddeea6e307eb27b64884235 100644 (file)
@@ -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)