1# shellcheck shell=bash
2
3ninjaBuildPhase() {
4 runHook preBuild
5
6 local buildCores=1
7
8 # Parallel building is enabled by default.
9 if [ "${enableParallelBuilding-1}" ]; then
10 buildCores="$NIX_BUILD_CORES"
11 fi
12
13 local flagsArray=(
14 "-j$buildCores"
15 )
16 concatTo flagsArray ninjaFlags ninjaFlagsArray
17
18 echoCmd 'build flags' "${flagsArray[@]}"
19 TERM=dumb ninja "${flagsArray[@]}"
20
21 runHook postBuild
22}
23
24ninjaCheckPhase() {
25 runHook preCheck
26
27 if [ -z "${checkTarget:-}" ]; then
28 if ninja -t query test >/dev/null 2>&1; then
29 checkTarget="test"
30 fi
31 fi
32
33 if [ -z "${checkTarget:-}" ]; then
34 echo "no test target found in ninja, doing nothing"
35 else
36 local buildCores=1
37
38 if [ "${enableParallelChecking-1}" ]; then
39 buildCores="$NIX_BUILD_CORES"
40 fi
41
42 local flagsArray=(
43 "-j$buildCores"
44 )
45 concatTo flagsArray ninjaFlags ninjaFlagsArray checkTarget
46
47 echoCmd 'check flags' "${flagsArray[@]}"
48 TERM=dumb ninja "${flagsArray[@]}"
49 fi
50
51 runHook postCheck
52}
53
54ninjaInstallPhase() {
55 runHook preInstall
56
57 local buildCores=1
58
59 # Parallel building is enabled by default.
60 if [ "${enableParallelInstalling-1}" ]; then
61 buildCores="$NIX_BUILD_CORES"
62 fi
63
64 # shellcheck disable=SC2086
65 local flagsArray=(
66 "-j$buildCores"
67 )
68 concatTo flagsArray ninjaFlags ninjaFlagsArray installTargets=install
69
70 echoCmd 'install flags' "${flagsArray[@]}"
71 TERM=dumb ninja "${flagsArray[@]}"
72
73 runHook postInstall
74}
75
76if [ -z "${dontUseNinjaBuild-}" ] && [ -z "${buildPhase-}" ]; then
77 buildPhase=ninjaBuildPhase
78fi
79
80if [ -z "${dontUseNinjaCheck-}" ] && [ -z "${checkPhase-}" ]; then
81 checkPhase=ninjaCheckPhase
82fi
83
84if [ -z "${dontUseNinjaInstall-}" ] && [ -z "${installPhase-}" ]; then
85 installPhase=ninjaInstallPhase
86fi