From 2b6f7a79bf5fadbf784dd850825a22c1127615c3 Mon Sep 17 00:00:00 2001 From: Laurentiu Ciobanu Date: Fri, 5 Apr 2024 13:41:35 +0300 Subject: [PATCH 1/2] sc-meta install wasm32 target --- framework/meta/src/cli_args/cli_args_standalone.rs | 6 ++++++ framework/meta/src/cmd/standalone/install.rs | 9 ++++++++- .../src/cmd/standalone/install/install_wasm32.rs | 12 ++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 framework/meta/src/cmd/standalone/install/install_wasm32.rs diff --git a/framework/meta/src/cli_args/cli_args_standalone.rs b/framework/meta/src/cli_args/cli_args_standalone.rs index 2f6c435e9c..02b5ac9f24 100644 --- a/framework/meta/src/cli_args/cli_args_standalone.rs +++ b/framework/meta/src/cli_args/cli_args_standalone.rs @@ -307,6 +307,9 @@ pub enum InstallCommand { #[command(about = "Installs the `mx-scenario-go` tool")] MxScenarioGo(InstallMxScenarioGoArgs), + + #[command(name = "wasm32", about = "Installs the `wasm32` target")] + Wasm32(InstallWasm32Args), } #[derive(Default, Clone, PartialEq, Eq, Debug, Args)] @@ -315,3 +318,6 @@ pub struct InstallMxScenarioGoArgs { #[arg(long, verbatim_doc_comment)] pub tag: Option, } + +#[derive(Default, Clone, PartialEq, Eq, Debug, Args)] +pub struct InstallWasm32Args {} diff --git a/framework/meta/src/cmd/standalone/install.rs b/framework/meta/src/cmd/standalone/install.rs index e96f23ad70..2c2befef95 100644 --- a/framework/meta/src/cmd/standalone/install.rs +++ b/framework/meta/src/cmd/standalone/install.rs @@ -1,7 +1,8 @@ mod install_scenario_go; +mod install_wasm32; mod system_info; -use crate::cli_args::{InstallArgs, InstallCommand, InstallMxScenarioGoArgs}; +use crate::cli_args::{InstallArgs, InstallCommand, InstallMxScenarioGoArgs, InstallWasm32Args}; use self::install_scenario_go::ScenarioGoInstaller; @@ -14,11 +15,17 @@ pub fn install(args: &InstallArgs) { match command { InstallCommand::All => { install_scenario_go(&InstallMxScenarioGoArgs::default()); + install_wasm32(&InstallWasm32Args::default()); }, InstallCommand::MxScenarioGo(sg_args) => install_scenario_go(sg_args), + InstallCommand::Wasm32(wam32_args) => install_wasm32(wam32_args), } } fn install_scenario_go(sg_args: &InstallMxScenarioGoArgs) { ScenarioGoInstaller::new(sg_args.tag.clone()).install(); } + +fn install_wasm32(_wasm32_args: &InstallWasm32Args) { + install_wasm32::install_wasm32_target(); +} diff --git a/framework/meta/src/cmd/standalone/install/install_wasm32.rs b/framework/meta/src/cmd/standalone/install/install_wasm32.rs new file mode 100644 index 0000000000..dbe6cc5eb7 --- /dev/null +++ b/framework/meta/src/cmd/standalone/install/install_wasm32.rs @@ -0,0 +1,12 @@ +use std::process::Command; + +pub fn install_wasm32_target() { + let cmd = Command::new("rustup") + .args(vec!["target", "add", "wasm32-unknown-unknown"]) + .status() + .expect("failed to execute `rustup`"); + + assert!(cmd.success(), "failed to install wasm32 target"); + + println!("wasm32 target installed successfully"); +} From 595709dc5253e5489380c9242f78b381f3da01c2 Mon Sep 17 00:00:00 2001 From: Laurentiu Ciobanu Date: Fri, 5 Apr 2024 14:41:46 +0300 Subject: [PATCH 2/2] sc-meta install wasm-opt --- framework/meta/src/cli_args/cli_args_standalone.rs | 6 ++++++ framework/meta/src/cmd/standalone/install.rs | 14 +++++++++++--- .../{install_wasm32.rs => install_wasm_tools.rs} | 11 +++++++++++ 3 files changed, 28 insertions(+), 3 deletions(-) rename framework/meta/src/cmd/standalone/install/{install_wasm32.rs => install_wasm_tools.rs} (55%) diff --git a/framework/meta/src/cli_args/cli_args_standalone.rs b/framework/meta/src/cli_args/cli_args_standalone.rs index 02b5ac9f24..00cf305e8d 100644 --- a/framework/meta/src/cli_args/cli_args_standalone.rs +++ b/framework/meta/src/cli_args/cli_args_standalone.rs @@ -310,6 +310,9 @@ pub enum InstallCommand { #[command(name = "wasm32", about = "Installs the `wasm32` target")] Wasm32(InstallWasm32Args), + + #[command(name = "wasm-opt", about = "Installs the `wasm-opt` tool")] + WasmOpt(InstallWasmOptArgs), } #[derive(Default, Clone, PartialEq, Eq, Debug, Args)] @@ -321,3 +324,6 @@ pub struct InstallMxScenarioGoArgs { #[derive(Default, Clone, PartialEq, Eq, Debug, Args)] pub struct InstallWasm32Args {} + +#[derive(Default, Clone, PartialEq, Eq, Debug, Args)] +pub struct InstallWasmOptArgs {} diff --git a/framework/meta/src/cmd/standalone/install.rs b/framework/meta/src/cmd/standalone/install.rs index 2c2befef95..2a3fc387c0 100644 --- a/framework/meta/src/cmd/standalone/install.rs +++ b/framework/meta/src/cmd/standalone/install.rs @@ -1,8 +1,10 @@ mod install_scenario_go; -mod install_wasm32; +mod install_wasm_tools; mod system_info; -use crate::cli_args::{InstallArgs, InstallCommand, InstallMxScenarioGoArgs, InstallWasm32Args}; +use crate::cli_args::{ + InstallArgs, InstallCommand, InstallMxScenarioGoArgs, InstallWasm32Args, InstallWasmOptArgs, +}; use self::install_scenario_go::ScenarioGoInstaller; @@ -16,9 +18,11 @@ pub fn install(args: &InstallArgs) { InstallCommand::All => { install_scenario_go(&InstallMxScenarioGoArgs::default()); install_wasm32(&InstallWasm32Args::default()); + install_wasm_opt(&InstallWasmOptArgs::default()); }, InstallCommand::MxScenarioGo(sg_args) => install_scenario_go(sg_args), InstallCommand::Wasm32(wam32_args) => install_wasm32(wam32_args), + InstallCommand::WasmOpt(wasm_opt_args) => install_wasm_opt(wasm_opt_args), } } @@ -27,5 +31,9 @@ fn install_scenario_go(sg_args: &InstallMxScenarioGoArgs) { } fn install_wasm32(_wasm32_args: &InstallWasm32Args) { - install_wasm32::install_wasm32_target(); + install_wasm_tools::install_wasm32_target(); +} + +fn install_wasm_opt(_wasm_opt_args: &InstallWasmOptArgs) { + install_wasm_tools::install_wasm_opt(); } diff --git a/framework/meta/src/cmd/standalone/install/install_wasm32.rs b/framework/meta/src/cmd/standalone/install/install_wasm_tools.rs similarity index 55% rename from framework/meta/src/cmd/standalone/install/install_wasm32.rs rename to framework/meta/src/cmd/standalone/install/install_wasm_tools.rs index dbe6cc5eb7..90577107fe 100644 --- a/framework/meta/src/cmd/standalone/install/install_wasm32.rs +++ b/framework/meta/src/cmd/standalone/install/install_wasm_tools.rs @@ -10,3 +10,14 @@ pub fn install_wasm32_target() { println!("wasm32 target installed successfully"); } + +pub fn install_wasm_opt() { + let cmd = Command::new("cargo") + .args(vec!["install", "wasm-opt"]) + .status() + .expect("failed to execute `cargo`"); + + assert!(cmd.success(), "failed to install wasm-opt"); + + println!("wasm-opt installed successfully"); +}