@@ -79,6 +79,16 @@ def parse_args():
7979 help = "Enable Level Zero backend explicitly" ,
8080 )
8181
82+ p .add_argument (
83+ "--generator" , type = str , default = "Ninja" , help = "CMake generator"
84+ )
85+ p .add_argument (
86+ "--cmake-executable" ,
87+ type = str ,
88+ default = None ,
89+ help = "Path to CMake executable used by build" ,
90+ )
91+
8292 p .add_argument (
8393 "--cmake-opts" ,
8494 type = str ,
@@ -149,7 +159,6 @@ def main():
149159 level_zero_enabled = True
150160
151161 cmake_args = make_cmake_args (
152- build_type = "Coverage" ,
153162 c_compiler = c_compiler ,
154163 cxx_compiler = cxx_compiler ,
155164 level_zero = level_zero_enabled ,
@@ -169,27 +178,21 @@ def main():
169178 warn ("Ignoring pre-existing CMAKE_ARGS in environment" )
170179 del env ["CMAKE_ARGS" ]
171180
181+ env ["CMAKE_ARGS" ] = cmake_args
182+
172183 if 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' , '' )} "
184+ env ["PATH" ] = ":" .join ((env .get ("PATH" , "" ), args .bin_llvm ))
183185 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
189186
190187 print (f"[gen_coverage] Using CMake args:\n { env ['CMAKE_ARGS' ]} " )
191188
192- build_extension (setup_dir , env )
189+ build_extension (
190+ setup_dir ,
191+ env ,
192+ cmake_executable = args .cmake_executable ,
193+ generator = args .generator ,
194+ build_type = "Coverage" ,
195+ )
193196 install_editable (setup_dir , env )
194197
195198 cmake_build_dir = (
0 commit comments