aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/optinterpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-11-27 22:16:32 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2017-12-03 22:27:55 +0200
commitf8a419b27d3605c4b4d1af42debb10124a51b908 (patch)
treee8bb232849837db83262e4f3c636d6d89cdf5533 /mesonbuild/optinterpreter.py
parentaa6b5762564af7fc2a01791183db684872311f48 (diff)
downloadmeson-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.py20
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)