1{ lib
2, fetchFromGitHub
3, cmake
4, llvmPackages
5, libxml2
6, zlib
7}:
8
9let
10 inherit (llvmPackages) stdenv;
11in
12stdenv.mkDerivation rec {
13 pname = "zig";
14 version = "0.8.1";
15
16 src = fetchFromGitHub {
17 owner = "ziglang";
18 repo = pname;
19 rev = version;
20 hash = "sha256-zMSOH8ZWcvzHRwOgGIbLO9Q6jf1P5QL5KCMD+frp+JA=";
21 };
22
23 nativeBuildInputs = [
24 cmake
25 llvmPackages.llvm.dev
26 ];
27 buildInputs = [
28 libxml2
29 zlib
30 ] ++ (with llvmPackages; [
31 libclang
32 lld
33 llvm
34 ]);
35
36 preBuild = ''
37 export HOME=$TMPDIR;
38 '';
39
40 doCheck = true;
41 checkPhase = ''
42 runHook preCheck
43 ./zig test --cache-dir "$TMPDIR" -I $src/test $src/test/behavior.zig
44 runHook postCheck
45 '';
46
47 meta = with lib; {
48 homepage = "https://ziglang.org/";
49 description =
50 "General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software";
51 license = licenses.mit;
52 maintainers = with maintainers; [ andrewrk AndersonTorres ];
53 platforms = platforms.unix;
54 broken = stdenv.isDarwin; # See https://github.com/NixOS/nixpkgs/issues/86299
55 };
56}
57