diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-11-27 22:16:32 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-12-03 22:27:55 +0200 |
commit | f8a419b27d3605c4b4d1af42debb10124a51b908 (patch) | |
tree | e8bb232849837db83262e4f3c636d6d89cdf5533 /mesonbuild/optinterpreter.py | |
parent | aa6b5762564af7fc2a01791183db684872311f48 (diff) | |
download | meson-f8a419b27d3605c4b4d1af42debb10124a51b908.zip meson-f8a419b27d3605c4b4d1af42debb10124a51b908.tar.gz meson-f8a419b27d3605c4b4d1af42debb10124a51b908.tar.bz2 |
String arguments can permit arbitrary string values
by leaving out the choices keyword.
Diffstat (limited to 'mesonbuild/optinterpreter.py')
-rw-r--r-- | mesonbuild/optinterpreter.py | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/mesonbuild/optinterpreter.py b/mesonbuild/optinterpreter.py index 22a263e..3cca239 100644 --- a/mesonbuild/optinterpreter.py +++ b/mesonbuild/optinterpreter.py @@ -86,15 +86,17 @@ def ComboParser(name, description, kwargs): @permitted_kwargs({'value', 'choices'}) def string_array_parser(name, description, kwargs): - if 'choices' not in kwargs: - raise OptionException('Array option missing "choices" keyword.') - choices = kwargs['choices'] - if not isinstance(choices, list): - raise OptionException('Array choices must be an array.') - for i in choices: - if not isinstance(i, str): - raise OptionException('Array choice elements must be strings.') - value = kwargs.get('value', choices) + if 'choices' in kwargs: + choices = kwargs['choices'] + if not isinstance(choices, list): + raise OptionException('Array choices must be an array.') + for i in choices: + if not isinstance(i, str): + raise OptionException('Array choice elements must be strings.') + value = kwargs.get('value', choices) + else: + choices = None + value = kwargs.get('value', []) if not isinstance(value, list): raise OptionException('Array choices must be passed as an array.') return coredata.UserStringArrayOption(name, description, value, choices=choices) |