|
1 | 1 | #![deny(warnings)] |
2 | 2 |
|
| 3 | +#[cfg(not(target_os = "windows"))] |
| 4 | +use binaryen::{CodegenConfig, Module}; |
3 | 5 | use { |
4 | 6 | anyhow::{bail, Context, Result}, |
5 | | - binaryen::{CodegenConfig, Module}, |
6 | 7 | std::{ |
7 | 8 | env, |
8 | 9 | fs::{self, File}, |
@@ -31,28 +32,40 @@ fn main() -> Result<()> { |
31 | 32 |
|
32 | 33 | let wasm: &[u8] = include_bytes!(concat!(env!("OUT_DIR"), "/engine.wasm")); |
33 | 34 |
|
34 | | - let mut wasm = Wizer::new() |
35 | | - .allow_wasi(true)? |
36 | | - .inherit_stdio(true) |
37 | | - .run(wasm)?; |
38 | | - |
39 | | - let codegen_cfg = CodegenConfig { |
40 | | - optimization_level: 3, |
41 | | - shrink_level: 0, |
42 | | - debug_info: false, |
43 | | - }; |
44 | | - |
45 | | - if let Ok(mut module) = Module::read(&wasm) { |
46 | | - module.optimize(&codegen_cfg); |
47 | | - module |
48 | | - .run_optimization_passes(vec!["strip"], &codegen_cfg) |
49 | | - .unwrap(); |
50 | | - wasm = module.write(); |
51 | | - } else { |
52 | | - bail!("Unable to read wasm binary for wasm-opt optimizations"); |
| 35 | + // using binaryen on windows causes spinjs to silently generate malformed wasm |
| 36 | + #[cfg(target_os = "windows")] |
| 37 | + { |
| 38 | + let wasm = Wizer::new() |
| 39 | + .allow_wasi(true)? |
| 40 | + .inherit_stdio(true) |
| 41 | + .run(wasm)?; |
| 42 | + fs::write(&opts.output, wasm)?; |
| 43 | + } |
| 44 | + #[cfg(not(target_os = "windows"))] |
| 45 | + { |
| 46 | + let mut wasm = Wizer::new() |
| 47 | + .allow_wasi(true)? |
| 48 | + .inherit_stdio(true) |
| 49 | + .run(wasm)?; |
| 50 | + |
| 51 | + let codegen_cfg = CodegenConfig { |
| 52 | + optimization_level: 3, |
| 53 | + shrink_level: 0, |
| 54 | + debug_info: false, |
| 55 | + }; |
| 56 | + |
| 57 | + if let Ok(mut module) = Module::read(&wasm) { |
| 58 | + module.optimize(&codegen_cfg); |
| 59 | + module |
| 60 | + .run_optimization_passes(vec!["strip"], &codegen_cfg) |
| 61 | + .unwrap(); |
| 62 | + wasm = module.write(); |
| 63 | + } else { |
| 64 | + bail!("Unable to read wasm binary for wasm-opt optimizations"); |
| 65 | + } |
| 66 | + |
| 67 | + fs::write(&opts.output, wasm)?; |
53 | 68 | } |
54 | | - |
55 | | - fs::write(&opts.output, wasm)?; |
56 | 69 |
|
57 | 70 | return Ok(()); |
58 | 71 | } |
|
0 commit comments