wip: build machinery for a wasm lib

This commit is contained in:
Jeremy Wall 2025-07-25 14:24:30 -04:00
parent b43ca2e1f0
commit e681059f8e
2 changed files with 27 additions and 3 deletions

View File

@ -1,7 +1,13 @@
OUT ?= target
all: build test
release: build-wasm-release
build: wasm native
build-wasm-release: wasm-bindgen-offline-web-storage-release
native: model-native storage-native
model-native:
@ -14,8 +20,26 @@ wasm: model-wasm storage-wasm
model-wasm:
cargo build --target=wasm32-unknown-unknown --features wasm -p offline-web-model --verbose
storage-wasm:
cargo build --target=wasm32-unknown-unknown --features wasm -p offline-web-storage --verbose
cargo build \
--target=wasm32-unknown-unknown \
--features wasm \
-p offline-web-storage \
storage-wasm-release:
cargo build \
--target=wasm32-unknown-unknown \
--target-dir=${OUT} \
--features wasm \
-p offline-web-storage \
--release
wasm-bindgen-offline-web-storage-release: storage-wasm-release
wasm-bindgen ${OUT}/wasm32-unknown-unknown/release/offline_web_storage.wasm \
--out-dir ${OUT}/ \
--typescript \
--target web
test: test-native test-wasm
@ -30,4 +54,4 @@ test-storage-native:
test-wasm: test-storage-wasm
test-storage-wasm:
cd offline-web-storage && wasm-pack test --headless --firefox --features wasm
cd offline-web-storage && wasm-pack test --headless --firefox --features wasm --release

View File

@ -40,7 +40,7 @@
{
packages.default = project;
devShells.default = pkgs.mkShell {
buildInputs = [ rust-bin pkgs.rust-analyzer pkgs.cargo-tarpaulin pkgs.wasm-pack ];
buildInputs = [ rust-bin ] ++ (with pkgs; [ rust-analyzer cargo-tarpaulin wasm-pack wasm-bindgen-cli_0_2_100 binaryen cargo-wasm2map ]);
packages = with pkgs; [ gnumake ];
};
});