diff --git a/src/actions/build.rs b/src/actions/build.rs index a2b3d51..eebc6a3 100644 --- a/src/actions/build.rs +++ b/src/actions/build.rs @@ -158,9 +158,12 @@ impl BuildAction<'_> { /// Prepare _wasm.rs file. fn build_wasm_sources(&self) { log::info("Generating _wasm.rs files..."); - for contract in self.contracts() { - command::cargo_build_wasm_sources(self.builder_paths.root(), &contract.name); - } + let names = self + .contracts() + .iter() + .map(|c| c.name.to_owned()) + .collect::>(); + command::cargo_build_wasm_sources(self.builder_paths.root(), &names); } /// Build _wasm.rs files into .wasm files. diff --git a/src/command.rs b/src/command.rs index 6ae5dd6..083231c 100644 --- a/src/command.rs +++ b/src/command.rs @@ -121,21 +121,18 @@ pub fn cargo_build_wasm_files(current_dir: PathBuf, contract_name: &str) { } /// Build wasm sources. -pub fn cargo_build_wasm_sources(current_dir: PathBuf, contract_name: &str) { - cargo( - current_dir, - "run", - vec![ - "--bin", - "contracts_build", - "--", - contract_name, - "--release", - "--no-default-features", - "--target-dir", - "../target", - ], - ); +pub fn cargo_build_wasm_sources(current_dir: PathBuf, contract_names: &[String]) { + let mut args = vec![ + "--bin", + "contracts_build", + "--release", + "--no-default-features", + "--target-dir", + "../target", + "--", + ]; + contract_names.iter().for_each(|name| args.push(name)); + cargo(current_dir, "run", args); } /// Update a cargo module.