nixpkgs/pkgs/development/compilers/zig/0.9.1.nix
Anderson Torres cc08d73612 zig_0_9: refactor
- Move zig_0_10_0 to prePatch
- Use rec-less, overlay-style overridable recursive attributes (in effect since
NixOS#119942);
- Add meta.changelog
2023-07-08 20:40:38 -03:00

87 lines
2.1 KiB
Nix

{ lib
, stdenv
, fetchFromGitHub
, cmake
, llvmPackages
, libxml2
, zlib
}:
stdenv.mkDerivation (finalAttrs: {
pname = "zig";
version = "0.9.1";
src = fetchFromGitHub {
owner = "ziglang";
repo = "zig";
rev = finalAttrs.version;
hash = "sha256-x2c4c9RSrNWGqEngio4ArW7dJjW0gg+8nqBwPcR721k=";
};
patches = [
# Fix index out of bounds reading RPATH (cherry-picked from 0.10-dev)
./rpath.patch
# Fix build on macOS 13 (cherry-picked from 0.10-dev)
./ventura.patch
];
# TODO: remove on next upgrade
prePatch = let
zig_0_10_0 = fetchFromGitHub {
owner = "ziglang";
repo = "zig";
rev = "0.10.0";
hash = "sha256-DNs937N7PLQimuM2anya4npYXcj6cyH+dRS7AiOX7tw=";
};
in ''
cp -R ${zig_0_10_0}/lib/libc/include/any-macos.13-any lib/libc/include/any-macos.13-any
cp -R ${zig_0_10_0}/lib/libc/include/aarch64-macos.13-none lib/libc/include/aarch64-macos.13-gnu
cp -R ${zig_0_10_0}/lib/libc/include/x86_64-macos.13-none lib/libc/include/x86_64-macos.13-gnu
cp ${zig_0_10_0}/lib/libc/darwin/libSystem.13.tbd lib/libc/darwin/
'';
nativeBuildInputs = [
cmake
llvmPackages.llvm.dev
];
buildInputs = [
libxml2
zlib
] ++ (with llvmPackages; [
libclang
lld
llvm
]);
preBuild = ''
export HOME=$TMPDIR;
'';
cmakeFlags = [
# file RPATH_CHANGE could not write new RPATH
"-DCMAKE_SKIP_BUILD_RPATH=ON"
# ensure determinism in the compiler build
"-DZIG_TARGET_MCPU=baseline"
];
doCheck = true;
checkPhase = ''
runHook preCheck
./zig test --cache-dir "$TMPDIR" -I $src/test $src/test/behavior.zig
runHook postCheck
'';
meta = {
homepage = "https://ziglang.org/";
description =
"General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software";
license = lib.licenses.mit;
changelog = "https://ziglang.org/download/${finalAttrs.version}/release-notes.html";
maintainers = with lib.maintainers; [ aiotter andrewrk AndersonTorres ];
platforms = lib.platforms.unix;
};
})