From d51bf8d9f6d34542879d286e127dbeb4d3bd6253 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sun, 9 Mar 2014 10:02:08 -0700 Subject: [PATCH] bitbake: cooker/command: Add setFeatures command Add a command to allow backends to set particular 'features' on the cooker (server). (Bitbake rev: f547d6ec6cfd677d71fa96dd3c69823c00dc6c69) Signed-off-by: Richard Purdie --- bitbake/lib/bb/command.py | 7 +++++++ bitbake/lib/bb/cooker.py | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py index e30d21d379..3788207122 100644 --- a/bitbake/lib/bb/command.py +++ b/bitbake/lib/bb/command.py @@ -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 diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 96f05b5309..8d63195189 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -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