From 48ee6a6148190cda71ab69f4417e2df0cc77596b Mon Sep 17 00:00:00 2001 From: Richard Kjerstadius Date: Wed, 24 Apr 2019 11:28:27 +0200 Subject: Add gcovr 4.2 support The out-of-source build syntax for gcovr 4.2 is different compared to previous versions and therefore an update was needed. In researching the most appropriate solution it was found that any gcovr version older than 3.3 always resulted in 0% coverage. Because of this, rather than adding an additional layer of logic, some already existing logic was modified to ensure correct syntax for the new version, while versions older than 3.3 are flagged as not supported. Closes mesonbuild#5089. --- mesonbuild/environment.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'mesonbuild/environment.py') diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py index c296573..3d5d3ab 100644 --- a/mesonbuild/environment.py +++ b/mesonbuild/environment.py @@ -83,7 +83,7 @@ from .compilers import ( build_filename = 'meson.build' -def detect_gcovr(version='3.1', log=False): +def detect_gcovr(min_version='3.3', new_rootdir_version='4.2', log=False): gcovr_exe = 'gcovr' try: p, found = Popen_safe([gcovr_exe, '--version'])[0:2] @@ -91,10 +91,10 @@ def detect_gcovr(version='3.1', log=False): # Doesn't exist in PATH or isn't executable return None, None found = search_version(found) - if p.returncode == 0: + if p.returncode == 0 and mesonlib.version_compare(found, '>=' + min_version): if log: mlog.log('Found gcovr-{} at {}'.format(found, shlex.quote(shutil.which(gcovr_exe)))) - return gcovr_exe, mesonlib.version_compare(found, '>=' + version) + return gcovr_exe, mesonlib.version_compare(found, '>=' + new_rootdir_version) return None, None def find_coverage_tools(): -- cgit v1.1