From b1304f729079fdc07523904902273ac581cfb702 Mon Sep 17 00:00:00 2001 From: Gerion Entrup Date: Fri, 14 Feb 2020 13:03:39 +0100 Subject: version parsing: match only when version starts with a number MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This leads to better version parsing. An concrete example use case is llc. When invoking llc with "--version", the output is ``` LLVM (http://llvm.org/): LLVM version 9.0.1 ... ``` The old version parsing recognizes the dot in the first line as version. This commit also tries to adapt the two regexes to each other. Reported-by: Björn Fiedler --- mesonbuild/dependencies/base.py | 2 +- mesonbuild/interpreter.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index fac7435..6f8181d 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -388,7 +388,7 @@ class ConfigToolDependency(ExternalDependency): tools = None tool_name = None - __strip_version = re.compile(r'^[0-9.]*') + __strip_version = re.compile(r'^[0-9][0-9.]+') def __init__(self, name, environment, kwargs, language: T.Optional[str] = None): super().__init__('config-tool', environment, kwargs, language=language) diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 09f7ff5..c29ed89 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -547,7 +547,7 @@ class ExternalProgramHolder(InterpreterObject, ObjectHolder): output = res.stdout.strip() if not output: output = res.stderr.strip() - match = re.search(r'([0-9\.]+)', output) + match = re.search(r'([0-9][0-9\.]+)', output) if not match: m = 'Could not find a version number in output of {!r}' raise InterpreterException(m.format(raw_cmd)) -- cgit v1.1