From 2c822641b2ab93d0d36d0741e3bfd02a7f344ae9 Mon Sep 17 00:00:00 2001 From: Sebastian Moser Date: Sun, 20 Oct 2024 12:37:04 +0200 Subject: [PATCH] the RustModule for the wasm target now builds the npm Package with wasm-pack --- flake.nix | 8 +++++--- lib.nix | 37 ++++++++++++++++++++++++++----------- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/flake.nix b/flake.nix index 825c2a9..13be964 100644 --- a/flake.nix +++ b/flake.nix @@ -133,16 +133,18 @@ in { # i can't use CARGO_BUILD_TARGET to set the target # because then the cargo install run by wasm-pack tries to build the wasm-bindgen-cli for a wasm target... - cargoExtraArgs = "--target wasm32-unknown-unknown --features wasm-target"; + + src = self; cargoArtifacts = wasmArtifacts; doCheck = false; buildPhaseCargoCommand = '' - mkdir -p $out/pkg + echo build hiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii + mkdir -p $out/pkg - HOME=$(mktemp -d fake-homeXXXX) wasm-pack build --out-dir $out/pkg --scope=c2vi -- --features wasm-target + HOME=$(mktemp -d fake-homeXXXX) wasm-pack build --out-dir $out/pkg --scope=c2vi -- --no-default-features --features wasm-target ''; buildInputs = with pkgs; [ wasm-bindgen-cli binaryen wasm-pack wasmToolchain ]; diff --git a/lib.nix b/lib.nix index c49f6c8..1c9c6cc 100644 --- a/lib.nix +++ b/lib.nix @@ -288,23 +288,38 @@ rec { ]; }; - main-wasm = craneLib.buildPackage { - src = "${self}"; + + # - https://github.com/ipetkov/crane/issues/362#issuecomment-1683220603 + wasmArtifacts = craneLib.buildDepsOnly ({ + src = self; + doCheck = false; # tests does not work in wasm CARGO_BUILD_TARGET = "wasm32-unknown-unknown"; - doCheck = false; cargoExtraArgs = "--features wasm-target --no-default-features"; + }); + main-wasm = craneLib.mkCargoDerivation { + name = "mize-npm-package"; + + # i can't use CARGO_BUILD_TARGET to set the target + # because then the cargo install run by wasm-pack tries to build the wasm-bindgen-cli for a wasm target... + + + src = self; + + cargoArtifacts = wasmArtifacts; + doCheck = false; + + buildPhaseCargoCommand = '' + mkdir -p $out/pkg + + HOME=$(mktemp -d fake-homeXXXX) wasm-pack build --out-dir $out/pkg --scope=c2vi -- --features wasm-target --no-default-features + ''; + + buildInputs = with pkgsNative; [ wasm-bindgen-cli binaryen wasm-pack ]; + MIZE_BUILD_CONFIG = mizeBildConfig; - - # env vars - #CC = "${stdenv.cc.nativePrefix}cc"; - #AR = "${stdenv.cc.nativePrefix}ar"; - #CC_wasm32_unknown_unknown = "${pkgs.llvmPackages_14.clang-unwrapped}/bin/clang-14"; - #CFLAGS_wasm32_unknown_unknown = "-I ${pkgs.llvmPackages_14.libclang.lib}/lib/clang/14.0.6/include/"; - #AR_wasm32_unknown_unknown = "${pkgs.llvmPackages_14.llvm}/bin/llvm-ar"; }; - ################# dev Shels ################### mkMizeRustShell = attrs: mkMizeModuleShell (attrs // {