multiversx_sc_meta_lib/
tools.rs

1pub mod build_target;
2mod find_workspace;
3mod git_describe;
4pub(crate) mod panic_report;
5pub mod twiggy;
6mod wasm_extractor;
7mod wasm_opt;
8mod wasm_to_wat;
9
10pub use find_workspace::{find_current_workspace, find_workspace};
11pub use git_describe::git_describe;
12pub use wasm_extractor::code_report::CodeReport;
13pub use wasm_extractor::extractor::WasmInfo;
14pub use wasm_extractor::report::WasmReport;
15pub use wasm_extractor::OpcodeVersion;
16pub use wasm_opt::install_wasm_opt;
17pub use wasm_opt::run_wasm_opt;
18pub use wasm_to_wat::wasm_to_wat;
19
20use crate::cli::BuildArgs;
21
22pub fn check_tools_installed(build_args: &mut BuildArgs) {
23    if build_args.wasm_opt && !wasm_opt::is_wasm_opt_installed() {
24        println!("Warning: {} not installed", wasm_opt::WASM_OPT_NAME);
25        build_args.wasm_opt = false;
26    }
27    if build_args.has_twiggy_call() && !twiggy::is_twiggy_installed() {
28        println!("Warning: {} not installed", twiggy::TWIGGY_NAME);
29        build_args.twiggy_top = false;
30        build_args.twiggy_paths = false;
31        build_args.twiggy_monos = false;
32        build_args.twiggy_dominators = false;
33    }
34}