!FBuJyWXTGcGtHTPphC:nixos.org

Nix Rust

585 Members
Rust129 Servers

Load older messages


SenderMessageTime
6 Jul 2025
@qaspr:matrix.orgJacoMalan1 set a profile picture.12:58:03
@andrew15_5:matrix.orgAndrew

I want to build a Dioxus desktop app with webview from GNU/Linux to Windows. So far, this does build

# https://discourse.nixos.org/t/cross-compile-rust-for-windows/9582/10
{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    rust-overlay.url = "github:oxalica/rust-overlay";
    rust-overlay.inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs = {
    nixpkgs,
    rust-overlay,
    ...
  }: let
    system = "x86_64-linux";
    pkgs = import nixpkgs {
      inherit system;
      crossSystem.config = "x86_64-w64-mingw32";
      overlays = [(import rust-overlay)];
    };
    pkgsLocal = import nixpkgs {inherit system;};
    rust-toolchain = pkgs.pkgsBuildHost.rust-bin.stable.latest.default.override {
      extensions = ["rust-src" "rust-analyzer" "clippy"];
      targets = ["x86_64-pc-windows-gnu"];
    };
    # rustBuildInputs =
    #   [
    #     # pkgs.pthreads
    #     pkgs.openssl
    #     pkgs.libiconv
    #     pkgs.pkg-config
    #   ]
    #   ++ lib.optionals pkgs.stdenv.isLinux [
    #     pkgs.glib
    #     pkgs.gtk3
    #     pkgs.libsoup_3
    #     pkgs.webkitgtk_4_1
    #     pkgs.xdotool
    #   ]
    #   ++ lib.optionals pkgs.stdenv.isDarwin (with pkgs.darwin.apple_sdk.frameworks; [
    #     IOKit
    #     Carbon
    #     WebKit
    #     Security
    #     Cocoa
    #   ]);
  in
    with pkgs; {
      devShells.${system}.default = mkShell {
        buildInputs = [
          pkgs.openssl
          pkgs.libiconv
          # pkgs.windows.mingw_w64_pthreads
        ];
        nativeBuildInputs = [
          rust-toolchain
          pkgsLocal.wine64
        ];
      };
    };
}

with dx bundle --platform windows --target x86_64-pc-windows-gnu --package-types msi, though bundle isn't being created.
But I get an error that the webview 2 loader dll is not found, just like https://stackoverflow.com/questions/74217709/unable-to-load-dll-webview2loader-dll-the-specified-module-could-not-be-found, which links to https://learn.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution?tabs=dotnetcsharp.

Does nixpkgs not have the WebView2 runtime-related stuff or do I have to install the runtime on the target OS in order to run my app?

15:15:58
@k900:0upti.meK900You definitely need it on the target15:16:24
@k900:0upti.meK900And we definitely don't have it in nixpkgs15:16:29
@k900:0upti.meK900As it's not redistributable15:16:35
@andrew15_5:matrix.orgAndrewIs there any chance this can be included in the binary somehow?15:17:01
@marie:marie.cologneMarieIsn't webview2 part of windows?15:17:14
@k900:0upti.meK900No, it's a Microsoft proprietary library15:17:16
@k900:0upti.meK900 Only on 11 15:17:25
@k900:0upti.meK900It is optional on 10 and N/A on older versions15:17:36
@k900:0upti.meK900And they are running Wine which most definitely isn't helping15:17:47
@andrew15_5:matrix.orgAndrewOh, so on that it should just work, if no other dependencies are missing?15:17:53
@k900:0upti.meK900Possibly15:18:00
@andrew15_5:matrix.orgAndrewThat's interesting.15:18:09
@k900:0upti.meK900Oh actually no it won't because you're building for MinGW15:18:12
@k900:0upti.meK900So presumably you'll run into Exciting ABI Fuckery15:18:18
@andrew15_5:matrix.orgAndrewOK, is there a better way?15:18:36
@k900:0upti.meK900Build on native Windows15:18:43
@andrew15_5:matrix.orgAndrewAre you saying Nix can't save me?15:18:57
@k900:0upti.meK900We don't really have good Windows support in nixpkgs15:18:59
@k900:0upti.meK900I am saying that nixpkgs, in its current state, can't save you15:19:09
@andrew15_5:matrix.orgAndrewSo you're telling there is a chance...15:19:22
@k900:0upti.meK900Maybe if someone puts in a good half a year of work and gets us a working MSVC toolchain15:19:24
@k900:0upti.meK900But you'd need to find someone with nixpkgs AND Windows expertise15:19:42
@k900:0upti.meK900And such people are extremely rare15:19:49
@k900:0upti.meK900If they even exist15:19:52
@andrew15_5:matrix.orgAndrewDo I understand correctly, that Windows platform support is not good, but Rust makes it even worse?15:20:20
@andrew15_5:matrix.orgAndrewBecause more variables etc.15:20:25
@k900:0upti.meK900No, Rust can actually make it OK-ish sometimes maybe15:20:37
@andrew15_5:matrix.orgAndrewBecause there are separate targets in Nixpkgs and separate ones in Rust.15:20:56

Show newer messages


Back to Room ListRoom Version: 6