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