Skip to content

Commit

Permalink
Add basic support for WASM
Browse files Browse the repository at this point in the history
  • Loading branch information
messense committed Jul 29, 2023
1 parent 26ee01f commit 4225d65
Showing 1 changed file with 21 additions and 8 deletions.
29 changes: 21 additions & 8 deletions src/zig.rs
Original file line number Diff line number Diff line change
Expand Up @@ -385,10 +385,12 @@ impl Zig {
let zig_cxx = zig_wrapper.cxx.to_slash_lossy();
add_env(format!("CC_{env_target}"), &*zig_cc);
add_env(format!("CXX_{env_target}"), &*zig_cxx);
add_env(
format!("CARGO_TARGET_{}_LINKER", env_target.to_uppercase()),
&*zig_cc,
);
if !parsed_target.contains("wasm") {
add_env(
format!("CARGO_TARGET_{}_LINKER", env_target.to_uppercase()),
&*zig_cc,
);
}
} else {
let mut add_env = |name, value| {
if env::var_os(&name).is_none() {
Expand All @@ -397,10 +399,12 @@ impl Zig {
};
add_env(format!("CC_{env_target}"), &zig_wrapper.cc);
add_env(format!("CXX_{env_target}"), &zig_wrapper.cxx);
add_env(
format!("CARGO_TARGET_{}_LINKER", env_target.to_uppercase()),
&zig_wrapper.cc,
);
if !parsed_target.contains("wasm") {
add_env(
format!("CARGO_TARGET_{}_LINKER", env_target.to_uppercase()),
&zig_wrapper.cc,
);
}
}

let mut add_env = |name, value| {
Expand Down Expand Up @@ -988,6 +992,15 @@ pub fn prepare_zig_linker(target: &str) -> Result<ZigWrapper> {
};
format!("-target {zig_arch}-windows-{target_env}{abi_suffix} {cc_args}",)
}
OperatingSystem::Emscripten => format!("-target {arch}-emscripten{abi_suffix} {cc_args}"),
OperatingSystem::Wasi => format!("-target {arch}-wasi{abi_suffix} {cc_args}"),
OperatingSystem::Unknown => {
if triple.architecture == Architecture::Wasm32 {
format!("-target wasm32-freestanding{abi_suffix} {cc_args}")
} else {
bail!("unsupported target '{rust_target}'")
}
}
_ => bail!(format!("unsupported target '{rust_target}'")),
};

Expand Down

0 comments on commit 4225d65

Please sign in to comment.