Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mesa
Path: blob/21.2-virgl/bin/meson-options.py
4545 views
1
#!/usr/bin/env python3
2
3
from os import get_terminal_size
4
from textwrap import wrap
5
from mesonbuild import coredata
6
from mesonbuild import optinterpreter
7
8
(COLUMNS, _) = get_terminal_size()
9
10
def describe_option(option_name: str, option_default_value: str,
11
option_type: str, option_message: str) -> None:
12
print('name: ' + option_name)
13
print('default: ' + option_default_value)
14
print('type: ' + option_type)
15
for line in wrap(option_message, width=COLUMNS - 9):
16
print(' ' + line)
17
print('---')
18
19
oi = optinterpreter.OptionInterpreter('')
20
oi.process('meson_options.txt')
21
22
for (name, value) in oi.options.items():
23
if isinstance(value, coredata.UserStringOption):
24
describe_option(name,
25
value.value,
26
'string',
27
"You can type what you want, but make sure it makes sense")
28
elif isinstance(value, coredata.UserBooleanOption):
29
describe_option(name,
30
'true' if value.value else 'false',
31
'boolean',
32
"You can set it to 'true' or 'false'")
33
elif isinstance(value, coredata.UserIntegerOption):
34
describe_option(name,
35
str(value.value),
36
'integer',
37
"You can set it to any integer value between '{}' and '{}'".format(value.min_value, value.max_value))
38
elif isinstance(value, coredata.UserUmaskOption):
39
describe_option(name,
40
str(value.value),
41
'umask',
42
"You can set it to 'preserve' or a value between '0000' and '0777'")
43
elif isinstance(value, coredata.UserComboOption):
44
choices = '[' + ', '.join(["'" + v + "'" for v in value.choices]) + ']'
45
describe_option(name,
46
value.value,
47
'combo',
48
"You can set it to any one of those values: " + choices)
49
elif isinstance(value, coredata.UserArrayOption):
50
choices = '[' + ', '.join(["'" + v + "'" for v in value.choices]) + ']'
51
value = '[' + ', '.join(["'" + v + "'" for v in value.value]) + ']'
52
describe_option(name,
53
value,
54
'array',
55
"You can set it to one or more of those values: " + choices)
56
elif isinstance(value, coredata.UserFeatureOption):
57
describe_option(name,
58
value.value,
59
'feature',
60
"You can set it to 'auto', 'enabled', or 'disabled'")
61
else:
62
print(name + ' is an option of a type unknown to this script')
63
print('---')
64
65