nixpkgs/doc/hooks/zig.section.md
figsoda 59eb02116f treewide: use zig_0_11 instead of zig for zig packages
Zig is still under active development, and new releases often introduce
breaking changes. This makes updating the default version of zig easier.

Some packages did not receive this change because they could be using
the c compiler or linker of zig, which doesn't receive as much breaking
changes compared to e.g. the zig std library.

https://github.com/NixOS/nixpkgs/pull/248243#discussion_r1289401340
2023-08-10 02:37:53 +00:00

60 lines
1.1 KiB
Markdown

# zig.hook {#zig-hook}
[Zig](https://ziglang.org/) is a general-purpose programming language and toolchain for maintaining robust, optimal and reusable software.
In Nixpkgs, `zig.hook` overrides the default build, check and install phases.
## Example code snippet {#example-code-snippet}
```nix
{ lib
, stdenv
, zig_0_11
}:
stdenv.mkDerivation {
# . . .
nativeBuildInputs = [
zig_0_11.hook
];
zigBuildFlags = [ "-Dman-pages=true" ];
dontUseZigCheck = true;
# . . .
}
```
## Variables controlling zig.hook {#variables-controlling-zig-hook}
### `dontUseZigBuild` {#dontUseZigBuild}
Disables using `zigBuildPhase`.
### `zigBuildFlags` {#zigBuildFlags}
Controls the flags passed to the build phase.
### `dontUseZigCheck` {#dontUseZigCheck}
Disables using `zigCheckPhase`.
### `zigCheckFlags` {#zigCheckFlags}
Controls the flags passed to the check phase.
### `dontUseZigInstall` {#dontUseZigInstall}
Disables using `zigInstallPhase`.
### `zigInstallFlags` {#zigInstallFlags}
Controls the flags passed to the install phase.
### Variables honored by zig.hook {#variables-honored-by-zig-hook}
- `prefixKey`
- `dontAddPrefix`