summaryrefslogtreecommitdiff
path: root/mesonbuild/optinterpreter.py
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2018-04-11 10:13:14 -0400
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2018-06-18 04:57:32 +0000
commite565945253662ef6e2151241b6686a999b78a43d (patch)
tree72c98fe3715acbb6704bcd80c902e9b49bb2a65b /mesonbuild/optinterpreter.py
parent5290f41f31439180b15600bca4ce4456983e3900 (diff)
downloadmeson-e565945253662ef6e2151241b6686a999b78a43d.tar.gz
Add UserFeatureOption type
This is a special type of option to be passed to most 'required' keyword arguments. It adds a 3rd state to the traditional boolean value to cause those methods to always return not-found even if the dependency could be found. Since integrators doesn't want enabled features to be a surprise there is a global option "auto_features" to enable or disable all automatic features.
Diffstat (limited to 'mesonbuild/optinterpreter.py')
-rw-r--r--mesonbuild/optinterpreter.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/mesonbuild/optinterpreter.py b/mesonbuild/optinterpreter.py
index 4207f459f..cd3139be2 100644
--- a/mesonbuild/optinterpreter.py
+++ b/mesonbuild/optinterpreter.py
@@ -116,11 +116,19 @@ def string_array_parser(name, description, kwargs):
choices=choices,
yielding=kwargs.get('yield', coredata.default_yielding))
+@permitted_kwargs({'value', 'yield'})
+def FeatureParser(name, description, kwargs):
+ return coredata.UserFeatureOption(name,
+ description,
+ kwargs.get('value', 'enabled'),
+ yielding=kwargs.get('yield', coredata.default_yielding))
+
option_types = {'string': StringParser,
'boolean': BooleanParser,
'combo': ComboParser,
'integer': IntegerParser,
'array': string_array_parser,
+ 'feature': FeatureParser,
}
class OptionInterpreter: