fix(macros): emit WASM glue only on target_arch = "wasm32"
Some checks failed
CI / Linux x86_64 (Forgejo) (push) Has been cancelled
Some checks failed
CI / Linux x86_64 (Forgejo) (push) Has been cancelled
The #[fai_module] expansion previously always inserted the wit_bindgen::generate! call, the Guest impl, and the export! macro. That is correct on the wasm32 target but causes host compilation of a module crate to fail because wit_bindgen's runtime types are not in scope on a non-wasm target. The orchestrator-llm module worked around this with a manual #[cfg(target_arch = "wasm32")] gate around its hand-written wit_bindgen call. The point of the SDK is to remove that boilerplate, so the gate now lives inside the macro itself. Module crates can now declare crate-type = ["cdylib", "rlib"] and run integration tests via `cargo test` against the `invoke` function directly without having the WASM glue on the host build. Bumps the SDK patch version 0.1.0 -> 0.1.1 per the per-commit policy. Signed-off-by: flemming-it <sf@flemming.it>
This commit is contained in:
parent
d3642853ec
commit
eb7a1d5d42
2 changed files with 7 additions and 1 deletions
|
|
@ -34,6 +34,12 @@ pub fn fai_module(_attrs: TokenStream, input: TokenStream) -> TokenStream {
|
|||
let expanded = quote! {
|
||||
#user_fn
|
||||
|
||||
// The WASM glue (wit_bindgen::generate!, Guest impl, export!)
|
||||
// is only emitted for the wasm32 target. Host builds skip
|
||||
// it so module crates can use crate-type = ["cdylib", "rlib"]
|
||||
// and run integration tests via `cargo test` without
|
||||
// dragging the wit_bindgen runtime onto the host target.
|
||||
#[cfg(target_arch = "wasm32")]
|
||||
#[doc(hidden)]
|
||||
mod __fai_module_sdk_internal {
|
||||
#![allow(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue