@@ -302,25 +302,23 @@ fn maybe_make_cpython(repo_dir: &Path, wasi_sdk: &Path) -> Result<()> {
302302 let config_guess =
303303 run ( Command :: new ( "../../config.guess" ) . current_dir ( & cpython_wasi_dir) ) ?;
304304
305+ let dir = cpython_wasi_dir
306+ . to_str ( )
307+ . ok_or_else ( || anyhow ! ( "non-utf8 path: {}" , cpython_wasi_dir. display( ) ) ) ?;
308+
305309 run ( Command :: new ( "../../Tools/wasm/wasi-env" )
306310 . env (
307311 "CONFIG_SITE" ,
308312 "../../Tools/wasm/wasi/config.site-wasm32-wasi" ,
309313 )
310314 . env (
311315 "CFLAGS" ,
312- format ! (
313- "--target=wasm32-wasip2 -fPIC -I{}/deps/include" ,
314- cpython_wasi_dir. display( )
315- ) ,
316+ format ! ( "--target=wasm32-wasip2 -fPIC -I{dir}/deps/include" , ) ,
316317 )
317318 . env ( "WASI_SDK_PATH" , wasi_sdk)
318319 . env (
319320 "LDFLAGS" ,
320- format ! (
321- "--target=wasm32-wasip2 -L{}/deps/lib" ,
322- cpython_wasi_dir. display( )
323- ) ,
321+ format ! ( "--target=wasm32-wasip2 -L{dir}/deps/lib" , ) ,
324322 )
325323 . current_dir ( & cpython_wasi_dir)
326324 . args ( [
@@ -524,21 +522,38 @@ fn build_zlib(wasi_sdk: &Path, install_dir: &Path) -> Result<()> {
524522 & out_dir,
525523 ) ?;
526524 let src_dir = out_dir. join ( "zlib-1.3.1" ) ;
525+
526+ let prefix = install_dir
527+ . to_str ( )
528+ . ok_or_else ( || anyhow ! ( "non-utf8 path: {}" , install_dir. display( ) ) ) ?;
529+
527530 let mut configure = Command :: new ( "./configure" ) ;
528531 add_compile_envs ( wasi_sdk, & mut configure) ;
529532 configure
530533 . current_dir ( & src_dir)
531534 . arg ( "--static" )
532- . arg ( format ! ( "--prefix={}" , install_dir . display ( ) ) ) ;
535+ . arg ( format ! ( "--prefix={prefix}" ) ) ;
533536 run ( & mut configure) ?;
537+
538+ let ar_dir = wasi_sdk. join ( "bin/ar" ) ;
539+ let ar_dir = ar_dir
540+ . to_str ( )
541+ . ok_or_else ( || anyhow ! ( "non-utf8 path: {}" , ar_dir. display( ) ) ) ?;
542+
543+ let clang_dir = wasi_sdk. join ( "bin/clang" ) ;
544+ let clang_dir = clang_dir
545+ . to_str ( )
546+ . ok_or_else ( || anyhow ! ( "non-utf8 path: {}" , clang_dir. display( ) ) ) ?;
547+
534548 let mut make = Command :: new ( "make" ) ;
535549 add_compile_envs ( wasi_sdk, & mut make) ;
536550 make. current_dir ( src_dir)
537- . arg ( format ! ( "AR={}" , wasi_sdk . join ( "bin/ar" ) . display ( ) ) )
551+ . arg ( format ! ( "AR={ar_dir}" ) )
538552 . arg ( "ARFLAGS=rcs" )
539- . arg ( format ! ( "CC={}" , wasi_sdk . join ( "bin/clang" ) . display ( ) ) )
553+ . arg ( format ! ( "CC={clang_dir}" ) )
540554 . arg ( "static" )
541555 . arg ( "install" ) ;
542556 run ( & mut make) ?;
557+
543558 Ok ( ( ) )
544559}
0 commit comments