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

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

Loading…
Cancel
Save