From 75e61d4ce2ea7b165ff690d50c37a5856c62936c Mon Sep 17 00:00:00 2001 From: Tomas Olvecky Date: Sat, 29 Apr 2023 16:01:06 +0200 Subject: [PATCH 1/2] Fix getting the target-dir in wasm_bindgen_build Fixes #1278 --- src/bindgen.rs | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/bindgen.rs b/src/bindgen.rs index 58fab36..9b881d0 100644 --- a/src/bindgen.rs +++ b/src/bindgen.rs @@ -29,17 +29,14 @@ pub fn wasm_bindgen_build( }; let out_dir = out_dir.to_str().unwrap(); - let has_target_dir_overwrite = extra_options.contains(&"--target-dir".to_string()); - let target_directory = if has_target_dir_overwrite { - let i = extra_options - .binary_search(&"--target-dir".to_string()) - .unwrap(); - extra_options - .get(i + 1) + + let target_directory = { + let mut has_target_dir_iter = extra_options.iter(); + has_target_dir_iter + .find(|&it| it == "--target-dir") + .and_then(|_| has_target_dir_iter.next()) .map(Path::new) .unwrap_or(data.target_directory()) - } else { - data.target_directory() }; let wasm_path = target_directory From 4190e5423fafcef8d5fe86e87063eefeeb8b24b7 Mon Sep 17 00:00:00 2001 From: Tomas Olvecky Date: Tue, 30 May 2023 17:59:52 +0200 Subject: [PATCH 2/2] Add sanity test for custom target directory --- tests/all/build.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/all/build.rs b/tests/all/build.rs index 4b87e4f..4e89e2c 100644 --- a/tests/all/build.rs +++ b/tests/all/build.rs @@ -37,6 +37,20 @@ fn it_should_not_make_a_pkg_json_if_passed_no_pack() { assert_eq!(pkg_path.join("licence").exists(), false); } +#[test] +fn it_should_build_js_hello_world_example_with_custom_target_dir() { + let fixture = utils::fixture::js_hello_world(); + fixture + .wasm_pack() + .arg("build") + .arg("--target-dir") + .arg("target2") + .arg("--all-features") + .arg("--offline") + .assert() + .success(); +} + #[test] fn it_should_build_crates_in_a_workspace() { let fixture = utils::fixture::Fixture::new();