diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-10-20 11:55:32 +0200 |
---|---|---|
committer | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-10-20 12:04:15 +0200 |
commit | 892c8ebe652938c196eeb635143fa5617126ef06 (patch) | |
tree | c5cabf581c049d6714cd7510940158a73ec002d5 /run_project_tests.py | |
parent | 66e1e1747e00ec060cfb6fff2adf3d3257102541 (diff) | |
download | meson-892c8ebe652938c196eeb635143fa5617126ef06.zip meson-892c8ebe652938c196eeb635143fa5617126ef06.tar.gz meson-892c8ebe652938c196eeb635143fa5617126ef06.tar.bz2 |
run_project_tests: Added print_tool_versions()
Diffstat (limited to 'run_project_tests.py')
-rwxr-xr-x | run_project_tests.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/run_project_tests.py b/run_project_tests.py index 4bfab0c0..ca0779c 100755 --- a/run_project_tests.py +++ b/run_project_tests.py @@ -867,6 +867,38 @@ def detect_system_compiler(): raise RuntimeError("Could not find C compiler.") print() +def print_tool_versions(): + tools = [ + { + 'tool': 'cmake', + 'args': ['--version'], + 'regex': re.compile(r'^cmake version ([0-9]+(\.[0-9]+)*)$'), + 'match_group': 1, + }, + ] + + def get_version(t: dict) -> str: + exe = shutil.which(t['tool']) + if not exe: + return 'not found' + + args = [t['tool']] + t['args'] + pc, o, e = Popen_safe(args) + if pc.returncode != 0: + return '{} (invalid {} executable)'.format(exe, t['tool']) + for i in o.split('\n'): + i = i.strip('\n\r\t ') + m = t['regex'].match(i) + if m is not None: + return '{} ({})'.format(exe, m.group(t['match_group'])) + + return '{} (unknown)'.format(exe) + + max_width = max([len(x['tool']) for x in tools] + [7]) + for tool in tools: + print('{0:<{2}}: {1}'.format(tool['tool'], get_version(tool), max_width)) + print() + if __name__ == '__main__': parser = argparse.ArgumentParser(description="Run the test suite of Meson.") parser.add_argument('extra_args', nargs='*', @@ -882,6 +914,7 @@ if __name__ == '__main__': setup_commands(options.backend) detect_system_compiler() + print_tool_versions() script_dir = os.path.split(__file__)[0] if script_dir != '': os.chdir(script_dir) |