]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
bitbake: cooker/command: Add setFeatures command
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 9 Mar 2014 17:02:08 +0000 (10:02 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 10 Mar 2014 18:09:59 +0000 (11:09 -0700)
Add a command to allow backends to set particular 'features' on the
cooker (server).

(Bitbake rev: f547d6ec6cfd677d71fa96dd3c69823c00dc6c69)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake/lib/bb/command.py
bitbake/lib/bb/cooker.py

index e30d21d379c680e2b9aa216672a9ed6549c58457..3788207122c671a71338fcdb84fc1dd0a3e2fdad 100644 (file)
@@ -257,6 +257,13 @@ class CommandsSync:
         mask = params[3]
         return bb.event.set_UIHmask(handlerNum, llevel, debug_domains, mask)
 
+    def setFeatures(self, command, params):
+        """
+        Set the cooker features to include the passed list of features
+        """
+        features = params[0]
+        command.cooker.setFeatures(features)
+
 class CommandsAsync:
     """
     A class of asynchronous commands
index 96f05b5309bf0691b74f4b0bda574e024e8fb9ca..8d63195189a86fffb7295687a293608903107524 100644 (file)
@@ -149,6 +149,14 @@ class BBCooker:
 
         self.parser = None
 
+    def setFeatures(self, features):
+        original_featureset = list(self.featureset)
+        for feature in features:
+            self.featureset.setFeature(feature)
+        bb.debug(1, "Features set %s (was %s)" % (original_featureset, list(self.featureset)))
+        if (original_featureset != list(self.featureset)):
+            self.reset()
+
     def initConfigurationData(self):
 
         self.state = state.initial