26 个版本 (14 个稳定)

1.5.0 2024 年 8 月 12 日
1.4.2 2024 年 7 月 2 日
1.4.1 2024 年 5 月 13 日
1.1.1 2024 年 2 月 12 日
0.1.2 2022 年 3 月 13 日

#39 in #gear

Download history 819/week @ 2024-04-22 250/week @ 2024-04-29 627/week @ 2024-05-06 433/week @ 2024-05-13 288/week @ 2024-05-20 179/week @ 2024-05-27 156/week @ 2024-06-03 207/week @ 2024-06-10 160/week @ 2024-06-17 181/week @ 2024-06-24 450/week @ 2024-07-01 294/week @ 2024-07-08 317/week @ 2024-07-15 284/week @ 2024-07-22 263/week @ 2024-07-29 252/week @ 2024-08-05

1,131 月下载量
用于 4 crates

GPL-3.0 许可证

515KB
11K SLoC

Gear WASM 构建器

这是一个辅助 crate,可用于构建 Gear 程序的构建脚本。

用法

  1. gear-wasm-builder crate 作为构建依赖项添加到 Cargo.toml
# ...

[build-dependencies]
gear-wasm-builder = "0.1.2"

# ...
  1. 创建一个 build.rs 文件并将其放置在包含 Cargo.toml 的目录中
fn main() {
    gear_wasm_builder::build();
}
  1. 通常使用 cargo
cargo clean
cargo build
cargo build --release
cargo test
cargo test --release
  1. target/wasm32-unknown-unknown/<profile> 目录中找到构建的 WASM 二进制文件
  • .wasm — 从源文件构建的原始 WASM
  • .opt.wasm — 优化后的 WASM 二进制文件,用于提交到区块链
  • .meta.wasm — 提供WASM二进制文件的元数据,用于辅助用途
  1. 此外,您还可以包含生成的 wasm_binary.rs 源文件,在例如编写测试时使用WASM代码。在这种情况下,您需要使用一些将不会传递给由构建脚本触发的构建过程的特性。默认情况下,这是 std 特性。如果您想为此使用自定义特性,请使用您的 build.rs 中的 build_XXX_custom 函数之一。
#[cfg(feature = "std")]
mod code {
    include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));
}

#[test]
fn debug_wasm() {
    assert_eq!(
        std::fs::read("target/wasm32-unknown-unknown/debug/test_program.wasm").unwrap(),
        code::WASM_BINARY,
    );
    assert_eq!(
        std::fs::read("target/wasm32-unknown-unknown/debug/test_program.opt.wasm").unwrap(),
        code::WASM_BINARY_OPT,
    );
    assert_eq!(
        std::fs::read("target/wasm32-unknown-unknown/debug/test_program.meta.wasm").unwrap(),
        code::WASM_BINARY_META,
    );
}

许可证

源代码根据 GPL-3.0-or-later WITH Classpath-exception-2.0 许可证授权。

依赖项

~12–24MB
~364K SLoC