From a079a635908390244d51f2283c5c0e055bac1d9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren?= Date: Thu, 10 Aug 2023 16:24:25 +0200 Subject: [PATCH] Add option to skip optimization with wasm-opt --- src/command/build.rs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/command/build.rs b/src/command/build.rs index 37a018b..5ade09e 100644 --- a/src/command/build.rs +++ b/src/command/build.rs @@ -32,6 +32,7 @@ pub struct Build { pub reference_types: bool, pub target: Target, pub no_pack: bool, + pub no_opt: bool, pub profile: BuildProfile, pub mode: InstallMode, pub out_dir: PathBuf, @@ -170,6 +171,10 @@ pub struct BuildOptions { /// Option to not generate a package.json pub no_pack: bool, + #[clap(long = "no-opt", alias = "no-optimization")] + /// Option to skip optimization with wasm-opt + pub no_opt: bool, + /// List of extra options to pass to `cargo build` pub extra_options: Vec, } @@ -187,6 +192,7 @@ impl Default for BuildOptions { debug: false, dev: false, no_pack: false, + no_opt: false, release: false, profiling: false, out_dir: String::new(), @@ -232,6 +238,7 @@ impl Build { reference_types: build_opts.reference_types, target: build_opts.target, no_pack: build_opts.no_pack, + no_opt: build_opts.no_opt, profile, mode: build_opts.mode, out_dir, @@ -249,7 +256,7 @@ impl Build { /// Execute this `Build` command. pub fn run(&mut self) -> Result<()> { - let process_steps = Build::get_process_steps(self.mode, self.no_pack); + let process_steps = Build::get_process_steps(self.mode, self.no_pack, self.no_opt); let started = Instant::now(); @@ -274,7 +281,11 @@ impl Build { Ok(()) } - fn get_process_steps(mode: InstallMode, no_pack: bool) -> Vec<(&'static str, BuildStep)> { + fn get_process_steps( + mode: InstallMode, + no_pack: bool, + no_opt: bool, + ) -> Vec<(&'static str, BuildStep)> { macro_rules! steps { ($($name:ident),+) => { { @@ -302,9 +313,12 @@ impl Build { step_create_dir, step_install_wasm_bindgen, step_run_wasm_bindgen, - step_run_wasm_opt, ]); + if !no_opt { + steps.extend(steps![step_run_wasm_opt]); + } + if !no_pack { steps.extend(steps![ step_create_json,