aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2019-12-21 20:40:39 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2020-02-12 22:31:08 +0200
commit6b5c1a4fc34f8f782947bde3e9a14446c89a2934 (patch)
tree2d90f7db4e5ead2e82421195f8ad2b93dd5e93c9
parent796b4c120ab37a9e0e73e2067aaad7b8d929e227 (diff)
downloadmeson-6b5c1a4fc34f8f782947bde3e9a14446c89a2934.zip
meson-6b5c1a4fc34f8f782947bde3e9a14446c89a2934.tar.gz
meson-6b5c1a4fc34f8f782947bde3e9a14446c89a2934.tar.bz2
Refactor UserIntegerOption to work with BuiltinOption.
-rw-r--r--mesonbuild/coredata.py11
-rw-r--r--mesonbuild/optinterpreter.py5
2 files changed, 8 insertions, 8 deletions
diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py
index aea2d90..5e842bc 100644
--- a/mesonbuild/coredata.py
+++ b/mesonbuild/coredata.py
@@ -96,11 +96,12 @@ class UserBooleanOption(UserOption[bool]):
raise MesonException('Value %s is not boolean (true or false).' % value)
class UserIntegerOption(UserOption[int]):
- def __init__(self, description, min_value, max_value, value, yielding=None):
+ def __init__(self, description, value, yielding=None):
+ min_value, max_value, default_value = value
super().__init__(description, [True, False], yielding)
self.min_value = min_value
self.max_value = max_value
- self.set_value(value)
+ self.set_value(default_value)
c = []
if min_value is not None:
c.append('>=' + str(min_value))
@@ -127,7 +128,7 @@ class UserIntegerOption(UserOption[int]):
class UserUmaskOption(UserIntegerOption, UserOption[T.Union[str, int]]):
def __init__(self, description, value, yielding=None):
- super().__init__(description, 0, 0o777, value, yielding)
+ super().__init__(description, (0, 0o777, value), yielding)
self.choices = ['preserve', '0000-0777']
def printable_value(self):
@@ -525,7 +526,7 @@ class CoreData:
UserIntegerOption(
'Maximum number of linker processes to run or 0 for no '
'limit',
- 0, None, 0)
+ (0, None, 0))
elif backend_name.startswith('vs'):
self.backend_options['backend_startup_project'] = \
UserStringOption(
@@ -967,7 +968,7 @@ class BuiltinOption(T.Generic[_T, _U]):
"""Class for a builtin option type.
- Currently doesn't support UserIntegerOption, or a few other cases.
+ There are some cases that are not fully supported yet.
"""
def __init__(self, opt_type: T.Type[_U], description: str, default: T.Any, yielding: bool = True, *,
diff --git a/mesonbuild/optinterpreter.py b/mesonbuild/optinterpreter.py
index 4d790b6..1a8a04a 100644
--- a/mesonbuild/optinterpreter.py
+++ b/mesonbuild/optinterpreter.py
@@ -90,10 +90,9 @@ def ComboParser(description, kwargs):
def IntegerParser(description, kwargs):
if 'value' not in kwargs:
raise OptionException('Integer option must contain value argument.')
+ inttuple = (kwargs.get('min', None), kwargs.get('max', None), kwargs['value'])
return coredata.UserIntegerOption(description,
- kwargs.get('min', None),
- kwargs.get('max', None),
- kwargs['value'],
+ inttuple,
kwargs.get('yield', coredata.default_yielding))
# FIXME: Cannot use FeatureNew while parsing options because we parse it before