1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-06-08 02:38:11 +09:00
nixpkgs/doc/hooks/tauri.section.md

2.2 KiB

cargo-tauri.hook

Tauri is a framework for building smaller, faster, and more secure desktop applications with a web frontend.

In Nixpkgs, cargo-tauri.hook overrides the default build and install phases.

Example code snippet

{
  lib,
  stdenv,
  rustPlatform,
  fetchNpmDeps,
  cargo-tauri,
  glib-networking,
  nodejs,
  npmHooks,
  openssl,
  pkg-config,
  webkitgtk_4_1,
  wrapGAppsHook4,
}:

rustPlatform.buildRustPackage (finalAttrs: {
  # ...

  cargoHash = "...";

  # Assuming our app's frontend uses `npm` as a package manager
  npmDeps = fetchNpmDeps {
    name = "${finalAttrs.pname}-${finalAttrs.version}-npm-deps";
    inherit (finalAttrs) src;
    hash = "...";
  };

  nativeBuildInputs =
    [
      # Pull in our main hook
      cargo-tauri.hook

      # Setup npm
      nodejs
      npmHooks.npmConfigHook

      # Make sure we can find our libraries
      pkg-config
    ]
    ++ lib.optionals stdenv.hostPlatform.isLinux [
      wrapGAppsHook4
    ];

  buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
    glib-networking # Most Tauri apps need networking
    openssl
    webkitgtk_4_1
  ];

  # Set our Tauri source directory
  cargoRoot = "src-tauri";
  # And make sure we build there too
  buildAndTestSubdir = finalAttrs.cargoRoot;

  # ...
})

Variables controlling cargo-tauri

Tauri Exclusive Variables

tauriBuildFlags

Controls the flags passed to cargo tauri build.

tauriBundleType

The bundle type to build.

dontTauriBuild

Disables using tauriBuildHook.

dontTauriInstall

Disables using tauriInstallPostBuildHook and tauriInstallHook.

Honored Variables

Along with those found in , the following variables used by cargoBuildHook and cargoInstallHook are honored by the cargo-tauri setup hook.

  • buildAndTestSubdir
  • cargoBuildType
  • cargoBuildNoDefaultFeatures
  • cargoBuildFeatures