maintainers: remove email for amuckstot30 (#360059)
[NixPkgs.git] / doc / hooks / tauri.section.md
blob2713515015dd88b8ccad23b95c8ce0d3b06a4321
1 # cargo-tauri.hook {#tauri-hook}
3 [Tauri](https://tauri.app/) is a framework for building smaller, faster, and
4 more secure desktop applications with a web frontend.
6 In Nixpkgs, `cargo-tauri.hook` overrides the default build and install phases.
8 ## Example code snippet {#tauri-hook-example-code-snippet}
10 ```nix
12   lib,
13   stdenv,
14   rustPlatform,
15   fetchNpmDeps,
16   cargo-tauri,
17   darwin,
18   glib-networking,
19   libsoup,
20   nodejs,
21   npmHooks,
22   openssl,
23   pkg-config,
24   webkitgtk_4_0,
25   wrapGAppsHook3,
28 rustPlatform.buildRustPackage rec {
29   # . . .
31   cargoHash = "...";
33   # Assuming our app's frontend uses `npm` as a package manager
34   npmDeps = fetchNpmDeps {
35     name = "${pname}-npm-deps-${version}";
36     inherit src;
37     hash = "...";
38   };
40   nativeBuildInputs = [
41     # Pull in our main hook
42     cargo-tauri.hook
44     # Setup npm
45     nodejs
46     npmHooks.npmConfigHook
48     # Make sure we can find our libraries
49     pkg-config
50     wrapGAppsHook3
51   ];
53   buildInputs =
54     [ openssl ]
55     ++ lib.optionals stdenv.hostPlatform.isLinux [
56       glib-networking # Most Tauri apps need networking
57       libsoup
58       webkitgtk_4_0
59     ]
60     ++ lib.optionals stdenv.hostPlatform.isDarwin (
61       with darwin.apple_sdk.frameworks;
62       [
63         AppKit
64         CoreServices
65         Security
66         WebKit
67       ]
68     );
70   # Set our Tauri source directory
71   cargoRoot = "src-tauri";
72   # And make sure we build there too
73   buildAndTestSubdir = cargoRoot;
75   # . . .
77 ```
79 ## Variables controlling cargo-tauri {#tauri-hook-variables-controlling}
81 ### Tauri Exclusive Variables {#tauri-hook-exclusive-variables}
83 #### `tauriBuildFlags` {#tauri-build-flags}
85 Controls the flags passed to `cargo tauri build`.
87 #### `tauriBundleType` {#tauri-bundle-type}
89 The [bundle type](https://tauri.app/v1/guides/building/) to build.
91 #### `dontTauriBuild` {#dont-tauri-build}
93 Disables using `tauriBuildHook`.
95 #### `dontTauriInstall` {#dont-tauri-install}
97 Disables using `tauriInstallPostBuildHook` and `tauriInstallHook`.
99 ### Honored Variables {#tauri-hook-honored-variables}
101 Along with those found in [](#compiling-rust-applications-with-cargo), the
102 following variables used by `cargoBuildHook` and `cargoInstallHook` are honored
103 by the cargo-tauri setup hook.
105 - `buildAndTestSubdir`
106 - `cargoBuildType`
107 - `cargoBuildNoDefaultFeatures`
108 - `cargoBuildFeatures`