2 个版本

0.0.1 2022 年 11 月 6 日
0.0.0 2022 年 11 月 6 日

#15 in #gear

GPL-3.0-or-later…

34KB
622

Gear WASM 构建器

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

用法

  1. gear-wasm-buider 包作为构建依赖项添加到 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 代码。
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 许可下授权。

依赖关系

~3–16MB
~183K SLoC