1515 help = "print commands to be executed" )
1616parser .add_argument ("--release" , action = "store_true" ,
1717 help = "build tests in release mode" )
18- parser .add_argument ("--toolchain" , action = "append" ,
19- help = "TARGET:TOOLCHAIN, pass +TOOLCHAIN to cargo for TARGET" )
20-
2118args = parser .parse_args ()
2219if args .dry_run :
2320 args .verbose = True
2421
25- TOOLCHAINS = {}
26- if args .toolchain is not None :
27- for toolchain_arg in args .toolchain :
28- match toolchain_arg .split (':' ):
29- case (target , toolchain ):
30- TOOLCHAINS [target ] = toolchain
31- case arg :
32- print (f"expected --toolchain=TARGET:TOOLCHAIN, got { toolchain_arg } " ,
33- file = sys .stderr )
34- sys .exit (1 )
35-
3622CARGO = ['cargo' ]
3723SYSTEMS = ['wasm32' ]
3824VERSIONS = ['wasip1' , 'wasip3' ]
@@ -46,6 +32,14 @@ def compute_build_target(system, version):
4632 return compute_target (system , 'wasip2' )
4733 return compute_target (system , version )
4834
35+ def compute_channel_for_version (version ):
36+ # At the time of writing, the nightly channel is
37+ # needed in order to make everything work with
38+ # WASI p3
39+ if version == 'wasip3' :
40+ return "+nightly"
41+ return "+stable"
42+
4943BASE_DIR = Path (__file__ ).parent
5044
5145def run (argv ):
@@ -105,9 +99,9 @@ def mkdir_p(path):
10599 target = compute_target (system , version )
106100 build_target = compute_build_target (system , version )
107101 build_mode = "release" if args .release else "debug"
108- toolchain = [ f"+ { TOOLCHAINS [ target ] } " ] if target in TOOLCHAINS else []
102+ channel = compute_channel_for_version ( version )
109103
110- build_args = CARGO + toolchain + [
104+ build_args = CARGO + [ channel ] + [
111105 "build" ,
112106 f"--manifest-path={ BASE_DIR / target / 'Cargo.toml' } " ,
113107 f"--target={ build_target } "
0 commit comments