diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2018-04-11 10:13:14 -0400 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2018-06-18 04:57:32 +0000 |
commit | e565945253662ef6e2151241b6686a999b78a43d (patch) | |
tree | 72c98fe3715acbb6704bcd80c902e9b49bb2a65b /mesonbuild/optinterpreter.py | |
parent | 5290f41f31439180b15600bca4ce4456983e3900 (diff) | |
download | meson-e565945253662ef6e2151241b6686a999b78a43d.zip meson-e565945253662ef6e2151241b6686a999b78a43d.tar.gz meson-e565945253662ef6e2151241b6686a999b78a43d.tar.bz2 |
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.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/mesonbuild/optinterpreter.py b/mesonbuild/optinterpreter.py index 4207f45..cd3139b 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: |