| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/usr/bin/env python3
-
- from os import get_terminal_size
- from textwrap import wrap
- from mesonbuild import coredata
- from mesonbuild import optinterpreter
-
- (COLUMNS, _) = get_terminal_size()
-
- def describe_option(option_name: str, option_default_value: str,
- option_type: str, option_message: str) -> None:
- print('name: ' + option_name)
- print('default: ' + option_default_value)
- print('type: ' + option_type)
- for line in wrap(option_message, width=COLUMNS - 9):
- print(' ' + line)
- print('---')
-
- oi = optinterpreter.OptionInterpreter('')
- oi.process('meson_options.txt')
-
- for (name, value) in oi.options.items():
- if isinstance(value, coredata.UserStringOption):
- describe_option(name,
- value.value,
- 'string',
- "You can type what you want, but make sure it makes sense")
- elif isinstance(value, coredata.UserBooleanOption):
- describe_option(name,
- 'true' if value.value else 'false',
- 'boolean',
- "You can set it to 'true' or 'false'")
- elif isinstance(value, coredata.UserIntegerOption):
- describe_option(name,
- str(value.value),
- 'integer',
- "You can set it to any integer value between '{}' and '{}'".format(value.min_value, value.max_value))
- elif isinstance(value, coredata.UserUmaskOption):
- describe_option(name,
- str(value.value),
- 'umask',
- "You can set it to 'preserve' or a value between '0000' and '0777'")
- elif isinstance(value, coredata.UserComboOption):
- choices = '[' + ', '.join(["'" + v + "'" for v in value.choices]) + ']'
- describe_option(name,
- value.value,
- 'combo',
- "You can set it to any one of those values: " + choices)
- elif isinstance(value, coredata.UserArrayOption):
- choices = '[' + ', '.join(["'" + v + "'" for v in value.choices]) + ']'
- value = '[' + ', '.join(["'" + v + "'" for v in value.value]) + ']'
- describe_option(name,
- value,
- 'array',
- "You can set it to one or more of those values: " + choices)
- elif isinstance(value, coredata.UserFeatureOption):
- describe_option(name,
- value.value,
- 'feature',
- "You can set it to 'auto', 'enabled', or 'disabled'")
- else:
- print(name + ' is an option of a type unknown to this script')
- print('---')
|