diff options
-rw-r--r-- | mesonbuild/mintro.py | 37 | ||||
-rwxr-xr-x | run_unittests.py | 3 |
2 files changed, 34 insertions, 6 deletions
diff --git a/mesonbuild/mintro.py b/mesonbuild/mintro.py index b15a608..94dee7c 100644 --- a/mesonbuild/mintro.py +++ b/mesonbuild/mintro.py @@ -124,18 +124,43 @@ def list_target_files(target_name, coredata, builddata): def list_buildoptions(coredata, builddata): optlist = [] - add_keys(optlist, coredata.user_options) - add_keys(optlist, coredata.compiler_options) - add_keys(optlist, coredata.base_options) - add_keys(optlist, coredata.builtins) + + dir_option_names = ['prefix', + 'libdir', + 'libexecdir', + 'bindir', + 'sbindir', + 'includedir', + 'datadir', + 'mandir', + 'infodir', + 'localedir', + 'sysconfdir', + 'localstatedir', + 'sharedstatedir'] + test_option_names = ['stdsplit', + 'errorlogs'] + core_option_names = [k for k in coredata.builtins if k not in dir_option_names + test_option_names] + + dir_options = {k: o for k, o in coredata.builtins.items() if k in dir_option_names} + test_options = {k: o for k, o in coredata.builtins.items() if k in test_option_names} + core_options = {k: o for k, o in coredata.builtins.items() if k in core_option_names} + + add_keys(optlist, core_options, 'core') + add_keys(optlist, coredata.backend_options, 'backend') + add_keys(optlist, coredata.base_options, 'base') + add_keys(optlist, coredata.compiler_options, 'compiler') + add_keys(optlist, dir_options, 'directory') + add_keys(optlist, coredata.user_options, 'user') + add_keys(optlist, test_options, 'test') print(json.dumps(optlist)) -def add_keys(optlist, options): +def add_keys(optlist, options, section): keys = list(options.keys()) keys.sort() for key in keys: opt = options[key] - optdict = {'name': key, 'value': opt.value} + optdict = {'name': key, 'value': opt.value, 'section': section} if isinstance(opt, cdata.UserStringOption): typestr = 'string' elif isinstance(opt, cdata.UserBooleanOption): diff --git a/run_unittests.py b/run_unittests.py index a8371ad..b99bc05 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -2253,6 +2253,7 @@ int main(int argc, char **argv) { expected = { 'name': 'list', 'description': 'list', + 'section': 'user', 'type': 'array', 'value': ['foo', 'bar'], } @@ -2277,6 +2278,7 @@ int main(int argc, char **argv) { expected = { 'name': 'list', 'description': 'list', + 'section': 'user', 'type': 'array', 'value': ['foo', 'bar'], } @@ -2301,6 +2303,7 @@ int main(int argc, char **argv) { expected = { 'name': 'list', 'description': 'list', + 'section': 'user', 'type': 'array', 'value': [], } |