58 lines
1.2 KiB
Nix
58 lines
1.2 KiB
Nix
|
{ stdenv
|
||
|
, zig
|
||
|
}:
|
||
|
|
||
|
{ buildInputs ? [ ]
|
||
|
, nativeBuildInputs ? [ ]
|
||
|
, optimize ? "ReleaseSafe"
|
||
|
, meta ? { }
|
||
|
, ...
|
||
|
}@args:
|
||
|
|
||
|
stdenv.mkDerivation (args // {
|
||
|
nativeBuildInputs = nativeBuildInputs ++ [
|
||
|
zig
|
||
|
];
|
||
|
|
||
|
buildInputs = buildInputs;
|
||
|
|
||
|
strictDeps = true;
|
||
|
|
||
|
configurePhase = args.configurePhase or ''
|
||
|
runHook preConfigure
|
||
|
runHook postConfigure
|
||
|
'';
|
||
|
|
||
|
ZIGFLAGS = args.ZIGFLAGS or [
|
||
|
"-Doptimize=${optimize}"
|
||
|
];
|
||
|
|
||
|
# https://github.com/ziglang/zig/issues/6810 requires setting XDG_CACHE_HOME
|
||
|
# in all zig build phases. --cache-dir and --global-cache-dir do not prevent
|
||
|
# the builder from attempting to create the XDG cache.
|
||
|
|
||
|
buildPhase = args.buildPhase or ''
|
||
|
runHook preBuild
|
||
|
XDG_CACHE_HOME=_cache zig build $ZIGFLAGS
|
||
|
runHook postBuild
|
||
|
'';
|
||
|
|
||
|
doCheck = args.doCheck or true;
|
||
|
checkPhase = args.checkPhase or ''
|
||
|
runHook preCheck
|
||
|
XDG_CACHE_HOME=_cache zig build test $ZIGFLAGS
|
||
|
runHook postCheck
|
||
|
'';
|
||
|
|
||
|
installPhase = args.installPhase or ''
|
||
|
runHook preInstall
|
||
|
XDG_CACHE_HOME=_cache zig build install --prefix $out $ZIGFLAGS
|
||
|
runHook postInstall
|
||
|
'';
|
||
|
|
||
|
meta = {
|
||
|
# default to Zig's platforms
|
||
|
platforms = zig.meta.platforms;
|
||
|
} // meta;
|
||
|
})
|