1# shellcheck shell=bash disable=SC2206
2
3wafConfigurePhase() {
4 runHook preConfigure
5
6 if [ -f "${wafPath:=./waf}" ]; then
7 patchShebangs --build "${wafPath}"
8 else
9 wafPath="@waf@/bin/waf"
10 fi
11
12 if [ -z "${dontAddPrefix:-}" ] && [ -n "$prefix" ]; then
13 local prefixFlag="${prefixKey:---prefix=}$prefix"
14 fi
15
16 if [ -n "${PKG_CONFIG}" ]; then
17 export PKGCONFIG="${PKG_CONFIG}"
18 fi
19
20 local flagsArray=( $prefixFlag )
21 concatTo flagsArray wafConfigureFlags wafConfigureFlagsArray wafConfigureTargets=configure
22
23 echoCmd 'waf configure flags' "${flagsArray[@]}"
24 "$wafPath" "${flagsArray[@]}"
25
26 if ! [[ -v enableParallelBuilding ]]; then
27 enableParallelBuilding=1
28 echo "waf: enabled parallel building"
29 fi
30
31 if ! [[ -v enableParallelInstalling ]]; then
32 enableParallelInstalling=1
33 echo "waf: enabled parallel installing"
34 fi
35
36 runHook postConfigure
37}
38
39wafBuildPhase () {
40 runHook preBuild
41
42 local flagsArray=( ${enableParallelBuilding:+-j ${NIX_BUILD_CORES}} )
43 concatTo flagsArray wafFlags wafFlagsArray wafBuildFlags wafBuildFlagsArray wafBuildTargets=build
44
45 echoCmd 'waf build flags' "${flagsArray[@]}"
46 "$wafPath" "${flagsArray[@]}"
47
48 runHook postBuild
49}
50
51wafInstallPhase() {
52 runHook preInstall
53
54 if [ -n "$prefix" ]; then
55 mkdir -p "$prefix"
56 fi
57
58 local flagsArray=( ${enableParallelInstalling:+-j ${NIX_BUILD_CORES}} )
59 concatTo flagsArray wafFlags wafFlagsArray wafInstallFlags wafInstallFlagsArray wafInstallTargets=install
60
61 echoCmd 'waf install flags' "${flagsArray[@]}"
62 "$wafPath" "${flagsArray[@]}"
63
64 runHook postInstall
65}
66
67if [ -z "${dontUseWafConfigure-}" ] && [ -z "${configurePhase-}" ]; then
68 configurePhase=wafConfigurePhase
69fi
70
71if [ -z "${dontUseWafBuild-}" ] && [ -z "${buildPhase-}" ]; then
72 buildPhase=wafBuildPhase
73fi
74
75if [ -z "${dontUseWafInstall-}" ] && [ -z "${installPhase-}" ]; then
76 installPhase=wafInstallPhase
77fi