1# shellcheck shell=bash
2
3# shellcheck disable=SC2034
4readonly zigDefaultFlagsArray=(@zig_default_flags@)
5
6function zigSetGlobalCacheDir {
7 ZIG_GLOBAL_CACHE_DIR=$(mktemp -d)
8 export ZIG_GLOBAL_CACHE_DIR
9}
10
11function zigBuildPhase {
12 runHook preBuild
13
14 local buildCores=1
15
16 # Parallel building is enabled by default.
17 if [ "${enableParallelBuilding-1}" ]; then
18 buildCores="$NIX_BUILD_CORES"
19 fi
20
21 local flagsArray=(
22 "-j$buildCores"
23 )
24 concatTo flagsArray zigDefaultFlagsArray \
25 zigBuildFlags zigBuildFlagsArray
26
27 echoCmd 'zig build flags' "${flagsArray[@]}"
28 TERM=dumb zig build "${flagsArray[@]}" --verbose
29
30 runHook postBuild
31}
32
33function zigCheckPhase {
34 runHook preCheck
35
36 local buildCores=1
37
38 # Parallel building is enabled by default.
39 if [ "${enableParallelChecking-1}" ]; then
40 buildCores="$NIX_BUILD_CORES"
41 fi
42
43 local flagsArray=(
44 "-j$buildCores"
45 )
46 concatTo flagsArray zigDefaultFlagsArray \
47 zigCheckFlags zigCheckFlagsArray
48
49 echoCmd 'zig check flags' "${flagsArray[@]}"
50 TERM=dumb zig build test "${flagsArray[@]}" --verbose
51
52 runHook postCheck
53}
54
55function zigInstallPhase {
56 runHook preInstall
57
58 local buildCores=1
59
60 # Parallel building is enabled by default.
61 if [ "${enableParallelInstalling-1}" ]; then
62 buildCores="$NIX_BUILD_CORES"
63 fi
64
65 local flagsArray=(
66 "-j$buildCores"
67 )
68 concatTo flagsArray zigDefaultFlagsArray \
69 zigBuildFlags zigBuildFlagsArray \
70 zigInstallFlags zigInstallFlagsArray
71
72 if [ -z "${dontAddPrefix-}" ]; then
73 # Zig does not recognize `--prefix=/dir/`, only `--prefix /dir/`
74 flagsArray+=("${prefixKey:---prefix}" "$prefix")
75 fi
76
77 echoCmd 'zig install flags' "${flagsArray[@]}"
78 TERM=dumb zig build install "${flagsArray[@]}" --verbose
79
80 runHook postInstall
81}
82
83# shellcheck disable=SC2154
84addEnvHooks "$targetOffset" zigSetGlobalCacheDir
85
86if [ -z "${dontUseZigBuild-}" ] && [ -z "${buildPhase-}" ]; then
87 buildPhase=zigBuildPhase
88fi
89
90if [ -z "${dontUseZigCheck-}" ] && [ -z "${checkPhase-}" ]; then
91 checkPhase=zigCheckPhase
92fi
93
94if [ -z "${dontUseZigInstall-}" ] && [ -z "${installPhase-}" ]; then
95 installPhase=zigInstallPhase
96fi