@@ -92,7 +92,17 @@ fn main() {
9292 ( export_include_dir, export_lib_dir)
9393 } ;
9494 if let Ok ( ort_lib_out_dir) = env:: var ( ORT_ENV_OUT_DIR ) {
95- output_onnxruntime_library ( & lib_dir, ort_lib_out_dir) ;
95+ output_onnxruntime_library ( & lib_dir, & ort_lib_out_dir) ;
96+ for entry in lib_dir. read_dir ( ) . unwrap ( ) . flat_map ( |e| e. ok ( ) ) {
97+ let path = entry. path ( ) ;
98+ if path. is_file ( ) {
99+ let file_name = path. file_name ( ) . unwrap ( ) . to_str ( ) . unwrap ( ) ;
100+ println ! (
101+ "cargo:rerun-if-changed={}" ,
102+ Path :: new( & ort_lib_out_dir) . join( file_name) . display( )
103+ ) ;
104+ }
105+ }
96106 }
97107
98108 println ! ( "Include directory: {:?}" , include_dir) ;
@@ -259,7 +269,7 @@ fn extract_zip(filename: &Path, outpath: &Path) {
259269 let mut file = archive. by_index ( i) . unwrap ( ) ;
260270 #[ allow( deprecated) ]
261271 let outpath = outpath. join ( file. sanitized_name ( ) ) ;
262- if !( & * file. name ( ) ) . ends_with ( '/' ) {
272+ if !file. name ( ) . ends_with ( '/' ) {
263273 println ! (
264274 "File {} extracted to \" {}\" ({} bytes)" ,
265275 i,
@@ -469,7 +479,20 @@ fn prepare_libort_dir_prebuilt() -> PathBuf {
469479 let ( prebuilt_archive, prebuilt_url) = prebuilt_archive_url ( ) ;
470480
471481 let out_dir = PathBuf :: from ( env:: var ( "OUT_DIR" ) . unwrap ( ) ) ;
472- let extract_dir = out_dir. join ( & format ! ( "{}_{}" , ORT_PREBUILT_EXTRACT_DIR , ORT_VERSION ) ) ;
482+ let extract_dir = out_dir. join ( & format ! (
483+ "{}_{}_{}" ,
484+ ORT_PREBUILT_EXTRACT_DIR ,
485+ ORT_VERSION ,
486+ if matches!( TRIPLET . accelerator, Accelerator :: Gpu ) {
487+ "gpu"
488+ } else {
489+ #[ cfg( not( feature = "directml" ) ) ]
490+ let accelerator = "cpu" ;
491+ #[ cfg( feature = "directml" ) ]
492+ let accelerator = "directml" ;
493+ accelerator
494+ }
495+ ) ) ;
473496 let downloaded_file = out_dir. join ( & prebuilt_archive) ;
474497
475498 println ! ( "cargo:rerun-if-changed={}" , downloaded_file. display( ) ) ;
0 commit comments