1{
2 lib,
3 stdenv,
4 zig,
5 runCommand,
6 makeWrapper,
7 coreutils,
8}:
9let
10 targetPrefix = lib.optionalString (
11 stdenv.hostPlatform != stdenv.targetPlatform
12 ) "${stdenv.targetPlatform.config}-";
13in
14runCommand "zig-bintools-${zig.version}"
15 {
16 pname = "zig-bintools";
17 inherit (zig) version meta;
18
19 nativeBuildInputs = [ makeWrapper ];
20
21 passthru = {
22 isZig = true;
23 inherit targetPrefix;
24 };
25
26 inherit zig;
27 }
28 ''
29 mkdir -p $out/bin
30 for tool in ar objcopy ranlib ld.lld; do
31 makeWrapper "$zig/bin/zig" "$out/bin/$tool" \
32 --add-flags "$tool" \
33 --suffix PATH : "${lib.makeBinPath [ coreutils ]}" \
34 --run "export ZIG_GLOBAL_CACHE_DIR=\$(mktemp -d)"
35 done
36
37 ln -s $out/bin/ld.lld $out/bin/ld
38 ''