about summary refs log tree commit diff
path: root/pkgs/development/tools/build-managers/ninja/setup-hook.sh
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/build-managers/ninja/setup-hook.sh')
-rw-r--r--pkgs/development/tools/build-managers/ninja/setup-hook.sh43
1 files changed, 43 insertions, 0 deletions
diff --git a/pkgs/development/tools/build-managers/ninja/setup-hook.sh b/pkgs/development/tools/build-managers/ninja/setup-hook.sh
new file mode 100644
index 000000000000..9ea6549a8243
--- /dev/null
+++ b/pkgs/development/tools/build-managers/ninja/setup-hook.sh
@@ -0,0 +1,43 @@
+ninjaBuildPhase() {
+    runHook preBuild
+
+    if [[ -z "$ninjaFlags" && ! ( -e build.ninja ) ]]; then
+        echo "no build.ninja, doing nothing"
+    else
+        # shellcheck disable=SC2086
+        local flagsArray=( \
+            ${enableParallelBuilding:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} \
+            $ninjaFlags "${ninjaFlagsArray[@]}" \
+            $buildFlags "${buildFlagsArray[@]}")
+
+        echoCmd 'build flags' "${flagsArray[@]}"
+        ninja "${flagsArray[@]}"
+        unset flagsArray
+    fi
+
+    runHook postBuild
+}
+
+if [ -z "$dontUseNinjaBuild" -a -z "$buildPhase" ]; then
+    buildPhase=ninjaBuildPhase
+fi
+
+ninjaInstallPhase() {
+    runHook preInstall
+
+    installTargets="${installTargets:-install}"
+
+    # shellcheck disable=SC2086
+    local flagsArray=( $installTargets \
+        $ninjaFlags "${ninjaFlagsArray[@]}")
+
+    echoCmd 'install flags' "${flagsArray[@]}"
+    ninja "${flagsArray[@]}"
+    unset flagsArray
+
+    runHook postInstall
+}
+
+if [ -z "$dontUseNinjaInstall" -a -z "$installPhase" ]; then
+    installPhase=ninjaInstallPhase
+fi