Skip to content

Commit 7b53623

Browse files
committed
pass explicit CMake variables for coverage tool paths
1 parent a4d90be commit 7b53623

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

scripts/gen_coverage.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,11 +169,23 @@ def main():
169169
warn("Ignoring pre-existing CMAKE_ARGS in environment")
170170
del env["CMAKE_ARGS"]
171171

172-
env["CMAKE_ARGS"] = cmake_args
173-
174172
if args.bin_llvm:
175-
env["PATH"] = ":".join((env.get("PATH", ""), args.bin_llvm))
173+
llvm_cov = os.path.join(args.bin_llvm, "llvm-cov")
174+
llvm_profdata = os.path.join(args.bin_llvm, "llvm-profdata")
175+
env = os.environ.copy()
176+
if not (os.path.isfile(llvm_cov) and os.access(llvm_cov, os.X_OK)):
177+
err(f"Cannot find executable llvm-cov in {args.bin_llvm}")
178+
if not (
179+
os.path.isfile(llvm_profdata) and os.access(llvm_profdata, os.X_OK)
180+
):
181+
err(f"Cannot find executable llvm-profdata in {args.bin_llvm}")
182+
env["PATH"] = f"{args.bin_llvm}:{env.get('PATH', '')}"
176183
env["LLVM_TOOLS_HOME"] = args.bin_llvm
184+
cmake_args += f" -DLLVM_TOOLS_HOME={args.bin_llvm}"
185+
cmake_args += f" -DLLVM_PROFDATA={llvm_profdata}"
186+
cmake_args += f" -DLLVM_COV={llvm_cov}"
187+
188+
env["CMAKE_ARGS"] = cmake_args
177189

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

0 commit comments

Comments
 (0)