summaryrefslogtreecommitdiff
path: root/mesonbuild/environment.py
diff options
context:
space:
mode:
authordragonmux <git@dragonmux.network>2023-08-23 22:46:57 +0100
committerDylan Baker <dylan@pnwbakers.com>2024-02-24 11:35:02 -0800
commitcfada46694aa952369063d3f4fa4e63d7e637ba3 (patch)
tree590fb6f1b1cd1b9b83f51380106fc434647dbc6a /mesonbuild/environment.py
parenta234c001a0011cd10953a8e4f265d64a12ac0a50 (diff)
downloadmeson-cfada46694aa952369063d3f4fa4e63d7e637ba3.tar.gz
scripts/coverage: Implemented handling for passing the gcovr and llvm-cov binaries to use to the script
Diffstat (limited to 'mesonbuild/environment.py')
-rw-r--r--mesonbuild/environment.py21
1 files changed, 11 insertions, 10 deletions
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
index 14e4ee856..dd6d7ba93 100644
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
@@ -72,8 +72,7 @@ def _get_env_var(for_machine: MachineChoice, is_cross: bool, var_name: str) -> T
return value
-def detect_gcovr(min_version: str = '3.3', log: bool = False):
- gcovr_exe = 'gcovr'
+def detect_gcovr(gcovr_exe: str = 'gcovr', min_version: str = '3.3', log: bool = False):
try:
p, found = Popen_safe([gcovr_exe, '--version'])[0:2]
except (FileNotFoundError, PermissionError):
@@ -86,8 +85,7 @@ def detect_gcovr(min_version: str = '3.3', log: bool = False):
return gcovr_exe, found
return None, None
-def detect_lcov(log: bool = False):
- lcov_exe = 'lcov'
+def detect_lcov(lcov_exe: str = 'lcov', log: bool = False):
try:
p, found = Popen_safe([lcov_exe, '--version'])[0:2]
except (FileNotFoundError, PermissionError):
@@ -107,16 +105,19 @@ def detect_llvm_cov():
return tool
return None
-def find_coverage_tools() -> T.Tuple[T.Optional[str], T.Optional[str], T.Optional[str], T.Optional[str], T.Optional[str], T.Optional[str]]:
+def detect_lcov_genhtml(lcov_exe: str = 'lcov', genhtml_exe: str = 'genhtml'):
+ lcov_exe, lcov_version = detect_lcov(lcov_exe)
+ if not mesonlib.exe_exists([genhtml_exe, '--version']):
+ genhtml_exe = None
+
+ return lcov_exe, lcov_version, genhtml_exe
+
+def find_coverage_tools(coredata: coredata.CoreData) -> T.Tuple[T.Optional[str], T.Optional[str], T.Optional[str], T.Optional[str], T.Optional[str], T.Optional[str]]:
gcovr_exe, gcovr_version = detect_gcovr()
llvm_cov_exe = detect_llvm_cov()
- lcov_exe, lcov_version = detect_lcov()
- genhtml_exe = 'genhtml'
-
- if not mesonlib.exe_exists([genhtml_exe, '--version']):
- genhtml_exe = None
+ lcov_exe, lcov_version, genhtml_exe = detect_lcov_genhtml()
return gcovr_exe, gcovr_version, lcov_exe, lcov_version, genhtml_exe, llvm_cov_exe