{ lib, stdenv, rustPlatform, fetchFromGitHub, openssl, pkg-config, glibc, libsoup, cairo, gtk3, webkitgtk, darwin, }: # Temp because nix moment! let inherit (darwin.apple_sdk.frameworks) CoreServices Security SystemConfiguration; in rustPlatform.buildRustPackage rec { pname = "tauri"; version = "2.0.0-rc.2"; src = fetchFromGitHub { owner = "tauri-apps"; repo = pname; rev = "tauri-v${version}"; hash = "sha256-V3Lck5RzEAxXRHPAy0M2elRk9geF8qHWoi01N6wcHc4="; }; # Manually specify the sourceRoot since this crate depends on other crates in the workspace. Relevant info at # https://discourse.nixos.org/t/difficulty-using-buildrustpackage-with-a-src-containing-multiple-cargo-workspaces/10202 sourceRoot = "${src.name}/tooling/cli"; cargoHash = "sha256-fGnre+vPzWtpp9NLLQtb/Feh06pBQipkCQ2kFCDTC+Y="; buildInputs = [openssl] ++ lib.optionals stdenv.isLinux [glibc libsoup cairo gtk3 webkitgtk] ++ lib.optionals stdenv.isDarwin [CoreServices Security SystemConfiguration]; nativeBuildInputs = [pkg-config]; meta = with lib; { description = "Build smaller, faster, and more secure desktop applications with a web frontend"; mainProgram = "cargo-tauri"; homepage = "https://tauri.app/"; license = with licenses; [ asl20 mit ]; maintainers = with maintainers; [dit7ya happysalada]; }; }