the RustModule for the wasm target now builds the npm Package with wasm-pack

This commit is contained in:
Sebastian Moser
2024-10-20 12:37:04 +02:00
parent 601362a109
commit 2c822641b2
2 changed files with 31 additions and 14 deletions

View File

@@ -133,16 +133,18 @@ in {
# i can't use CARGO_BUILD_TARGET to set the target # 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... # 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; src = self;
cargoArtifacts = wasmArtifacts; cargoArtifacts = wasmArtifacts;
doCheck = false; doCheck = false;
buildPhaseCargoCommand = '' 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 ]; buildInputs = with pkgs; [ wasm-bindgen-cli binaryen wasm-pack wasmToolchain ];

37
lib.nix
View File

@@ -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"; CARGO_BUILD_TARGET = "wasm32-unknown-unknown";
doCheck = false;
cargoExtraArgs = "--features wasm-target --no-default-features"; 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; 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 ################### ################# dev Shels ###################
mkMizeRustShell = attrs: mkMizeModuleShell (attrs // { mkMizeRustShell = attrs: mkMizeModuleShell (attrs // {