From b32273fc790a62168982ec288ca412605f704be2 Mon Sep 17 00:00:00 2001 From: bakaq Date: Fri, 31 Jan 2025 09:24:39 -0300 Subject: [PATCH] Make Wasm compilable --- Cargo.toml | 11 +++++++++++ flake.nix | 15 ++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index a299e690..0eb6b7a1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -139,6 +139,17 @@ opt-level = 3 lto = true opt-level = 3 +[profile.wasm-dev] +inherits = "dev" +opt-level = 1 +lto = "off" + +[profile.wasm-release] +inherits = "release" +lto = "off" +panic = "abort" +codegen-units = 256 + [[bench]] name = "run_criterion" harness = false diff --git a/flake.nix b/flake.nix index 852aa4af..14e38943 100644 --- a/flake.nix +++ b/flake.nix @@ -20,6 +20,10 @@ rustToolchainDev = super.rust-bin.stable.latest.default.override { extensions = [ "rust-src" "rust-analyzer" ]; }; + rustToolchainDevWasm = super.rust-bin.stable.latest.default.override { + extensions = [ "rust-src" "rust-analyzer" ]; + targets = [ "wasm32-unknown-unknown" ]; + }; rustToolchainNightly = super.rust-bin.selectLatestNightlyWith (toolchain: toolchain.default.override { extensions = [ "rust-src" "rust-analyzer" "miri" ]; @@ -38,12 +42,21 @@ in { devShells = { - default = pkgs.mkShell { + default = pkgs.mkShell.override { stdenv = pkgs.clangMultiStdenv; } { nativeBuildInputs = nativeBuildInputs; buildInputs = buildInputs ++ (with pkgs; [ rustToolchainDev ]); }; + wasm-js = pkgs.mkShell.override { stdenv = pkgs.clangMultiStdenv; } { + nativeBuildInputs = nativeBuildInputs; + buildInputs = buildInputs ++ (with pkgs; [ + wasm-pack + rustToolchainDevWasm + ]); + TARGET_CC = "${pkgs.clangMultiStdenv.cc}/bin/clang"; + hardeningDisable = [ "all" ]; + }; # For use with Miri and stuff like it nightly = pkgs.mkShell { nativeBuildInputs = nativeBuildInputs; -- 2.54.0