bugfix(bindgen-target-dir): use PathBuf to join

the old code are hard coded path with "/", which may cause error
on windows, thus changing to use PathBuf.join.

fixing #414
master
huangjj27 7 years ago
parent ad62870f40
commit ee9116d2e0
  1. 16
      src/bindgen.rs
  2. 7
      tests/all/build.rs

@ -5,6 +5,7 @@ use emoji;
use error::Error;
use progressbar::Step;
use slog::Logger;
use std::env;
use std::path::{Path, PathBuf};
use std::process::Command;
use target;
@ -126,10 +127,17 @@ pub fn wasm_bindgen_build(
let out_dir = out_dir.to_str().unwrap();
if let Some(wasm_bindgen_path) = wasm_bindgen_path(log, path) {
let wasm_path = format!(
"target/wasm32-unknown-unknown/{}/{}.wasm",
release_or_debug, binary_name
);
let target_path = match env::var("CARGO_TARGET_DIR") {
Ok(path) => PathBuf::from(&path),
Err(_) => PathBuf::from("target"),
};
let mut wasm_path = target_path
.join("wasm32-unknown-unknown")
.join(release_or_debug)
.join(binary_name);
wasm_path.set_extension("wasm");
let wasm_path = wasm_path.display().to_string();
let dts_arg = if disable_dts {
"--no-typescript"
} else {

@ -32,9 +32,6 @@ fn it_should_build_js_hello_world_example() {
])
.unwrap();
let logger = logger::new(&cli.cmd, cli.verbosity).unwrap();
let result = command::run_wasm_pack(cli.cmd, &logger);
assert!(
result.is_ok(),
"running wasm-pack in a js-hello-world directory should succeed.",
);
command::run_wasm_pack(cli.cmd, &logger)
.expect("running wasm-pack in a js-hello-world directory should succeed.");
}

Loading…
Cancel
Save