diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-01-01 18:57:07 +0100 |
---|---|---|
committer | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-01-06 12:19:34 +0100 |
commit | 9c214f4a70cc82340257b39b9bbfe45b2f4c0c8f (patch) | |
tree | c7cd09b34b546007ac8a264faf7bdb4e20a8f77d /mesonbuild/mintro.py | |
parent | 4b17bbc753a76924e60bde50e6cb91a240fff989 (diff) | |
download | meson-9c214f4a70cc82340257b39b9bbfe45b2f4c0c8f.zip meson-9c214f4a70cc82340257b39b9bbfe45b2f4c0c8f.tar.gz meson-9c214f4a70cc82340257b39b9bbfe45b2f4c0c8f.tar.bz2 |
Fixed buildoptions form source
Diffstat (limited to 'mesonbuild/mintro.py')
-rw-r--r-- | mesonbuild/mintro.py | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/mesonbuild/mintro.py b/mesonbuild/mintro.py index e6782cb..6f2cdf6 100644 --- a/mesonbuild/mintro.py +++ b/mesonbuild/mintro.py @@ -251,7 +251,7 @@ class BuildoptionsInterperter(astinterpreter.AstInterpreter): self.parse_project() self.run() -def list_buildoptions_from_source(sourcedir, backend): +def list_buildoptions_from_source(sourcedir, backend, indent): # Make sure that log entries in other parts of meson don't interfere with the JSON output mlog.disable() backend = backends.get_backend_from_name(backend, None) @@ -259,7 +259,8 @@ def list_buildoptions_from_source(sourcedir, backend): intr.analyze() # Reenable logging just in case mlog.enable() - list_buildoptions(intr.coredata) + buildoptions = list_buildoptions(intr.coredata)[1] + print(json.dumps(buildoptions, indent=indent)) def list_target_files(target_name, targets, builddata: build.Build): result = [] @@ -424,7 +425,7 @@ class ProjectInfoInterperter(astinterpreter.AstInterpreter): self.parse_project() self.run() -def list_projinfo_from_source(sourcedir): +def list_projinfo_from_source(sourcedir, indent): files = find_buildsystem_files_list(sourcedir) result = {'buildsystem_files': []} @@ -453,21 +454,22 @@ def list_projinfo_from_source(sourcedir): subprojects = [obj for name, obj in subprojects.items()] result['subprojects'] = subprojects - print(json.dumps(result)) + print(json.dumps(result, indent=indent)) def run(options): datadir = 'meson-private' infodir = 'meson-info' + indent = options.indent if options.indent > 0 else None if options.builddir is not None: datadir = os.path.join(options.builddir, datadir) infodir = os.path.join(options.builddir, infodir) if options.builddir.endswith('/meson.build') or options.builddir.endswith('\\meson.build') or options.builddir == 'meson.build': sourcedir = '.' if options.builddir == 'meson.build' else options.builddir[:-11] if options.projectinfo: - list_projinfo_from_source(sourcedir) + list_projinfo_from_source(sourcedir, indent) return 0 if options.buildoptions: - list_buildoptions_from_source(sourcedir, options.backend) + list_buildoptions_from_source(sourcedir, options.backend, indent) return 0 if not os.path.isdir(datadir) or not os.path.isdir(infodir): print('Current directory is not a meson build directory.' @@ -514,8 +516,6 @@ def run(options): with open(curr, 'r') as fp: results += [(i, json.load(fp))] - indent = options.indent if options.indent > 0 else None - if len(results) == 0 and not options.force_dict: print('No command specified') return 1 |