diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2017-11-08 13:43:28 -0500 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2017-11-15 18:51:06 -0500 |
commit | 6a5cda5131e094da3d28969af0512046c4fd81a5 (patch) | |
tree | 3b2d8d4a737cfd1ecfc99d652e0409c9995646cb /pkgs/stdenv | |
parent | 9a244374110af2be1986f8dc00f7ce178e798cd1 (diff) | |
download | nixpkgs-6a5cda5131e094da3d28969af0512046c4fd81a5.tar nixpkgs-6a5cda5131e094da3d28969af0512046c4fd81a5.tar.gz nixpkgs-6a5cda5131e094da3d28969af0512046c4fd81a5.tar.bz2 nixpkgs-6a5cda5131e094da3d28969af0512046c4fd81a5.tar.lz nixpkgs-6a5cda5131e094da3d28969af0512046c4fd81a5.tar.xz nixpkgs-6a5cda5131e094da3d28969af0512046c4fd81a5.tar.zst nixpkgs-6a5cda5131e094da3d28969af0512046c4fd81a5.zip |
stdenv setup: Run setup hooks and other processing after accumulating deps
I find the separation of concerns, accumulating, then processing, easier to follow. Also, with my yet-to-be-merged cross work, the accumulation part will become more complex.
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r-- | pkgs/stdenv/generic/setup.sh | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh index 02da3829c5a..ee25013d5a5 100644 --- a/pkgs/stdenv/generic/setup.sh +++ b/pkgs/stdenv/generic/setup.sh @@ -324,6 +324,18 @@ findInputs() { exit 1 fi + if [ -f "$pkg/nix-support/$propagatedBuildInputsFile" ]; then + local pkgNext + for pkgNext in $(< "$pkg/nix-support/$propagatedBuildInputsFile"); do + findInputs "$pkgNext" "$var" "$propagatedBuildInputsFile" + done + fi +} + +# Add package to the future PATH and run setup hooks +activatePackage() { + local pkg="$1" + if [ -f "$pkg" ]; then local oldOpts="$(shopt -po nounset)" set +u @@ -341,13 +353,6 @@ findInputs() { source "$pkg/nix-support/setup-hook" eval "$oldOpts" fi - - if [ -f "$pkg/nix-support/$propagatedBuildInputsFile" ]; then - local pkgNext - for pkgNext in $(< "$pkg/nix-support/$propagatedBuildInputsFile"); do - findInputs "$pkgNext" "$var" "$propagatedBuildInputsFile" - done - fi } declare -a nativePkgs crossPkgs @@ -359,15 +364,22 @@ if [ -z "${crossConfig:-}" ]; then ${propagatedNativeBuildInputs:-} ${propagatedBuildInputs:-}; do findInputs "$i" nativePkgs propagated-native-build-inputs done + + for i in "${nativePkgs[@]}"; do + activatePackage "$i" + done else for i in ${buildInputs:-} ${defaultBuildInputs:-} ${propagatedBuildInputs:-}; do findInputs "$i" crossPkgs propagated-build-inputs done - declare -a nativePkgs for i in ${nativeBuildInputs:-} ${defaultNativeBuildInputs:-} ${propagatedNativeBuildInputs:-}; do findInputs "$i" nativePkgs propagated-native-build-inputs done + + for i in "${nativePkgs[@]}" "${crossPkgs[@]}"; do + activatePackage "$i" + done fi |