]> Repositorios git - scryer-prolog.git/commitdiff
Make Wasm compilable
authorbakaq <[email protected]>
Fri, 31 Jan 2025 12:24:39 +0000 (09:24 -0300)
committerbakaq <[email protected]>
Thu, 20 Feb 2025 04:04:38 +0000 (01:04 -0300)
Cargo.toml
flake.nix

index a299e6900ff46c21b09cac4d5e5881d561dcb395..0eb6b7a1f2efe8b959263ea9f5ebe28703526553 100644 (file)
@@ -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
index 852aa4afbfdd524a4d5b4c49f1bd794929a20611..14e3894309bcdab5ab8418475c9ef11f1a8a89a3 100644 (file)
--- a/flake.nix
+++ b/flake.nix
           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" ];
       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;