aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/mintro.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-12-03 23:45:59 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2016-12-06 20:27:59 +0200
commitb28da68faf2485fff018fb59bae2030c379f2376 (patch)
tree28e587a3597f8491f1b9828e13bc4b10cea43438 /mesonbuild/mintro.py
parentc7a2664cb7043160d653718179de97d4c7976e34 (diff)
downloadmeson-b28da68faf2485fff018fb59bae2030c379f2376.zip
meson-b28da68faf2485fff018fb59bae2030c379f2376.tar.gz
meson-b28da68faf2485fff018fb59bae2030c379f2376.tar.bz2
Expose project information with mesonintrospect. Closes #1118.
Diffstat (limited to 'mesonbuild/mintro.py')
-rw-r--r--mesonbuild/mintro.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/mesonbuild/mintro.py b/mesonbuild/mintro.py
index c1af818..f902d3d 100644
--- a/mesonbuild/mintro.py
+++ b/mesonbuild/mintro.py
@@ -39,6 +39,8 @@ parser.add_argument('--benchmarks', action='store_true', dest='benchmarks', defa
help='List all benchmarks.')
parser.add_argument('--dependencies', action='store_true', dest='dependencies', default=False,
help='list external dependencies.')
+parser.add_argument('--projectinfo', action='store_true', dest='projectinfo', default=False,
+ help='information about projects.')
parser.add_argument('args', nargs='+')
def determine_installed_path(target, installdata):
@@ -179,6 +181,18 @@ def list_tests(testdata):
result.append(to)
print(json.dumps(result))
+def list_projinfo(builddata):
+ result = {}
+ result['name'] = builddata.project_name
+ result['version'] = builddata.project_version
+ subprojects = []
+ for k, v in builddata.subprojects.items():
+ c = {'name' : k,
+ 'version' : v}
+ subprojects.append(c)
+ result['subprojects'] = subprojects
+ print(json.dumps(result))
+
def run(args):
options = parser.parse_args(args)
if len(options.args) > 1:
@@ -217,6 +231,8 @@ def run(args):
list_tests(benchmarkdata)
elif options.dependencies:
list_deps(coredata)
+ elif options.projectinfo:
+ list_projinfo(builddata)
else:
print('No command specified')
return 1