Skip to content

Commit 02639b2

Browse files
committed
pass explicit CMake variables for coverage tool paths
1 parent a4d90be commit 02639b2

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

scripts/gen_coverage.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,23 @@ def main():
172172
env["CMAKE_ARGS"] = cmake_args
173173

174174
if args.bin_llvm:
175-
env["PATH"] = ":".join((env.get("PATH", ""), args.bin_llvm))
175+
llvm_cov = os.path.join(args.bin_llvm, "llvm-cov")
176+
llvm_profdata = os.path.join(args.bin_llvm, "llvm-profdata")
177+
env = os.environ.copy()
178+
if not (os.path.isfile(llvm_cov) and os.access(llvm_cov, os.X_OK)):
179+
err(f"Cannot find executable llvm-cov in {args.bin_llvm}")
180+
if not (
181+
os.path.isfile(llvm_profdata) and os.access(llvm_profdata, os.X_OK)
182+
):
183+
err(f"Cannot find executable llvm-profdata in {args.bin_llvm}")
184+
env["PATH"] = f"{args.bin_llvm}:{env.get('PATH', '')}"
176185
env["LLVM_TOOLS_HOME"] = args.bin_llvm
186+
cmake_args += f" -DLLVM_TOOLS_HOME={args.bin_llvm}"
187+
cmake_args += f" -DLLVM_PROFDATA={llvm_profdata}"
188+
cmake_args += f" -DLLVM_COV={llvm_cov}"
189+
env["CMAKE_ARGS"] = cmake_args
190+
else:
191+
env = os.environ.copy()
177192

178193
print(f"[gen_coverage] Using CMake args:\n {env['CMAKE_ARGS']}")
179194

0 commit comments

Comments
 (0)