about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/compilers/zig/setup-hook.sh
blob: 689ebec8a30777bfaef5d5d07c431788de14234c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# shellcheck shell=bash disable=SC2154,SC2086

readonly zigDefaultFlagsArray=(@zig_default_flags@)

function zigSetGlobalCacheDir {
    ZIG_GLOBAL_CACHE_DIR=$(mktemp -d)
    export ZIG_GLOBAL_CACHE_DIR
}

function zigBuildPhase {
    runHook preBuild

    local flagsArray=(
        "${zigDefaultFlagsArray[@]}"
        $zigBuildFlags "${zigBuildFlagsArray[@]}"
    )

    echoCmd 'zig build flags' "${flagsArray[@]}"
    zig build "${flagsArray[@]}"

    runHook postBuild
}

function zigCheckPhase {
    runHook preCheck

    local flagsArray=(
        "${zigDefaultFlagsArray[@]}"
        $zigCheckFlags "${zigCheckFlagsArray[@]}"
    )

    echoCmd 'zig check flags' "${flagsArray[@]}"
    zig build test "${flagsArray[@]}"

    runHook postCheck
}

function zigInstallPhase {
    runHook preInstall

    local flagsArray=(
        "${zigDefaultFlagsArray[@]}"
        $zigBuildFlags "${zigBuildFlagsArray[@]}"
        $zigInstallFlags "${zigInstallFlagsArray[@]}"
    )

    if [ -z "${dontAddPrefix-}" ]; then
        # Zig does not recognize `--prefix=/dir/`, only `--prefix /dir/`
        flagsArray+=("${prefixKey:---prefix}" "$prefix")
    fi

    echoCmd 'zig install flags' "${flagsArray[@]}"
    zig build install "${flagsArray[@]}"

    runHook postInstall
}

addEnvHooks "$targetOffset" zigSetGlobalCacheDir

if [ -z "${dontUseZigBuild-}" ] && [ -z "${buildPhase-}" ]; then
    buildPhase=zigBuildPhase
fi

if [ -z "${dontUseZigCheck-}" ] && [ -z "${checkPhase-}" ]; then
    checkPhase=zigCheckPhase
fi

if [ -z "${dontUseZigInstall-}" ] && [ -z "${installPhase-}" ]; then
    installPhase=zigInstallPhase
fi