Skip to content

Commit be913b9

Browse files
committed
remove binaryen for windows
Signed-off-by: karthik Ganeshram <[email protected]>
1 parent d692160 commit be913b9

File tree

2 files changed

+37
-24
lines changed

2 files changed

+37
-24
lines changed

Cargo.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/spin-js-cli/src/main.rs

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
#![deny(warnings)]
22

3+
#[cfg(not(target_os = "windows"))]
4+
use binaryen::{CodegenConfig, Module};
35
use {
46
anyhow::{bail, Context, Result},
5-
binaryen::{CodegenConfig, Module},
67
std::{
78
env,
89
fs::{self, File},
@@ -31,28 +32,40 @@ fn main() -> Result<()> {
3132

3233
let wasm: &[u8] = include_bytes!(concat!(env!("OUT_DIR"), "/engine.wasm"));
3334

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)?;
5368
}
54-
55-
fs::write(&opts.output, wasm)?;
5669

5770
return Ok(());
5871
}

0 commit comments

Comments
 (0)