1# shellcheck shell=bash
2
3# Build using 'swift-build'.
4swiftpmBuildPhase() {
5 runHook preBuild
6
7 local buildCores=1
8 if [ "${enableParallelBuilding-1}" ]; then
9 buildCores="$NIX_BUILD_CORES"
10 fi
11
12 local flagsArray=(
13 -j "$buildCores"
14 -c "${swiftpmBuildConfig-release}"
15 )
16 concatTo flagsArray swiftpmFlags swiftpmFlagsArray
17
18 echoCmd 'build flags' "${flagsArray[@]}"
19 TERM=dumb swift-build "${flagsArray[@]}"
20
21 runHook postBuild
22}
23
24if [ -z "${dontUseSwiftpmBuild-}" ] && [ -z "${buildPhase-}" ]; then
25 buildPhase=swiftpmBuildPhase
26fi
27
28# Check using 'swift-test'.
29swiftpmCheckPhase() {
30 runHook preCheck
31
32 local buildCores=1
33 if [ "${enableParallelBuilding-1}" ]; then
34 buildCores="$NIX_BUILD_CORES"
35 fi
36
37 local flagsArray=(
38 -j "$buildCores"
39 -c "${swiftpmBuildConfig-release}"
40 )
41 concatTo flagsArray swiftpmFlags swiftpmFlagsArray
42
43 echoCmd 'check flags' "${flagsArray[@]}"
44 TERM=dumb swift-test "${flagsArray[@]}"
45
46 runHook postCheck
47}
48
49if [ -z "${dontUseSwiftpmCheck-}" ] && [ -z "${checkPhase-}" ]; then
50 checkPhase=swiftpmCheckPhase
51fi
52
53# Helper used to find the binary output path.
54# Useful for performing the installPhase of swiftpm packages.
55swiftpmBinPath() {
56 local flagsArray=(
57 -c "${swiftpmBuildConfig-release}"
58 )
59 concatTo flagsArray swiftpmFlags swiftpmFlagsArray
60
61 swift-build --show-bin-path "${flagsArray[@]}"
62}