nixpkgs/doc/hooks/tauri.section.md
seth ed6c067f25
doc/tauri: use tauri 2.0 dependencies & new darwin SDK pattern in example (#357148)
* doc/tauri: use tauri 2.0 dependencies in example

* doc/tauri: use new darwin SDK pattern in example

Part of https://github.com/NixOS/nixpkgs/issues/354146
2024-12-04 00:31:45 -05:00

2.1 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 rec {
  # . . .

  cargoHash = "...";

  # Assuming our app's frontend uses `npm` as a package manager
  npmDeps = fetchNpmDeps {
    name = "${pname}-npm-deps-${version}";
    inherit 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
    wrapGAppsHook4
  ];

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

  # Set our Tauri source directory
  cargoRoot = "src-tauri";
  # And make sure we build there too
  buildAndTestSubdir = 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