@@ -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