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
1,131 月下载量
用于 4 crates
515KB
11K SLoC
Gear WASM 构建器
这是一个辅助 crate,可用于构建 Gear 程序的构建脚本。
用法
- 将
gear-wasm-builder
crate 作为构建依赖项添加到Cargo.toml
# ...
[build-dependencies]
gear-wasm-builder = "0.1.2"
# ...
- 创建一个
build.rs
文件并将其放置在包含Cargo.toml
的目录中
fn main() {
gear_wasm_builder::build();
}
- 通常使用
cargo
cargo clean
cargo build
cargo build --release
cargo test
cargo test --release
- 在
target/wasm32-unknown-unknown/<profile>
目录中找到构建的 WASM 二进制文件
.wasm
— 从源文件构建的原始 WASM.opt.wasm
— 优化后的 WASM 二进制文件,用于提交到区块链.meta.wasm
— 提供WASM二进制文件的元数据,用于辅助用途
- 此外,您还可以包含生成的
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