about summary refs log tree commit diff
path: root/pkgs/stdenv
diff options
context:
space:
mode:
authorArtturin <Artturin@artturin.com>2022-12-31 15:25:54 +0200
committerArtturin <Artturin@artturin.com>2023-02-07 21:00:18 +0200
commit84e37a10ec32b70c0e1a74fb3e5a837f6e7d74ab (patch)
treedcc1b9ec3ff7085aaf08362494be7ad11111bb22 /pkgs/stdenv
parent371c2a630333eaed3a28fd3b7e7cb0ed73e4a84d (diff)
downloadnixlib-84e37a10ec32b70c0e1a74fb3e5a837f6e7d74ab.tar
nixlib-84e37a10ec32b70c0e1a74fb3e5a837f6e7d74ab.tar.gz
nixlib-84e37a10ec32b70c0e1a74fb3e5a837f6e7d74ab.tar.bz2
nixlib-84e37a10ec32b70c0e1a74fb3e5a837f6e7d74ab.tar.lz
nixlib-84e37a10ec32b70c0e1a74fb3e5a837f6e7d74ab.tar.xz
nixlib-84e37a10ec32b70c0e1a74fb3e5a837f6e7d74ab.tar.zst
nixlib-84e37a10ec32b70c0e1a74fb3e5a837f6e7d74ab.zip
stdenv: allow propagating propagated dependencies separately from the
fixup phase

for makeSetupHook
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r--pkgs/stdenv/generic/setup.sh65
1 files changed, 35 insertions, 30 deletions
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index 6ea44a641cef..1a637bf13fdd 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -995,6 +995,39 @@ stripHash() {
 }
 
 
+recordPropagatedDependencies() {
+    # Propagate dependencies into the development output.
+    declare -ra flatVars=(
+        # Build
+        depsBuildBuildPropagated
+        propagatedNativeBuildInputs
+        depsBuildTargetPropagated
+        # Host
+        depsHostHostPropagated
+        propagatedBuildInputs
+        # Target
+        depsTargetTargetPropagated
+    )
+    declare -ra flatFiles=(
+        "${propagatedBuildDepFiles[@]}"
+        "${propagatedHostDepFiles[@]}"
+        "${propagatedTargetDepFiles[@]}"
+    )
+
+    local propagatedInputsIndex
+    for propagatedInputsIndex in "${!flatVars[@]}"; do
+        local propagatedInputsSlice="${flatVars[$propagatedInputsIndex]}[@]"
+        local propagatedInputsFile="${flatFiles[$propagatedInputsIndex]}"
+
+        [[ "${!propagatedInputsSlice}" ]] || continue
+
+        mkdir -p "${!outputDev}/nix-support"
+        # shellcheck disable=SC2086
+        printWords ${!propagatedInputsSlice} > "${!outputDev}/nix-support/$propagatedInputsFile"
+    done
+}
+
+
 unpackCmdHooks+=(_defaultUnpack)
 _defaultUnpack() {
     local fn="$1"
@@ -1379,36 +1412,8 @@ fixupPhase() {
     done
 
 
-    # Propagate dependencies & setup hook into the development output.
-    declare -ra flatVars=(
-        # Build
-        depsBuildBuildPropagated
-        propagatedNativeBuildInputs
-        depsBuildTargetPropagated
-        # Host
-        depsHostHostPropagated
-        propagatedBuildInputs
-        # Target
-        depsTargetTargetPropagated
-    )
-    declare -ra flatFiles=(
-        "${propagatedBuildDepFiles[@]}"
-        "${propagatedHostDepFiles[@]}"
-        "${propagatedTargetDepFiles[@]}"
-    )
-
-    local propagatedInputsIndex
-    for propagatedInputsIndex in "${!flatVars[@]}"; do
-        local propagatedInputsSlice="${flatVars[$propagatedInputsIndex]}[@]"
-        local propagatedInputsFile="${flatFiles[$propagatedInputsIndex]}"
-
-        [[ "${!propagatedInputsSlice}" ]] || continue
-
-        mkdir -p "${!outputDev}/nix-support"
-        # shellcheck disable=SC2086
-        printWords ${!propagatedInputsSlice} > "${!outputDev}/nix-support/$propagatedInputsFile"
-    done
-
+    # record propagated dependencies & setup hook into the development output.
+    recordPropagatedDependencies
 
     if [ -n "${setupHook:-}" ]; then
         mkdir -p "${!outputDev}/nix-support"