diff options
author | Matthew Bauer <mjbauer95@gmail.com> | 2019-01-27 18:22:41 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-27 18:22:41 -0500 |
commit | d54fbbebbb5195d6dea3b7cf6185c90554b4d6c2 (patch) | |
tree | e16913005949e95d84320d8a876b3de74170ca8b /pkgs/stdenv/generic | |
parent | 8657f25239fe62abce06347f110d043e2d303968 (diff) | |
parent | 9172c1eee2e376ef9070d1db0586471c52397242 (diff) |
Merge pull request #49552 from matthewbauer/setup-dedupe
setup.sh: avoid running the same hook twice
Diffstat (limited to 'pkgs/stdenv/generic')
-rw-r--r-- | pkgs/stdenv/generic/setup.sh | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh index 0f63693e09e7..8dff35578071 100644 --- a/pkgs/stdenv/generic/setup.sh +++ b/pkgs/stdenv/generic/setup.sh @@ -558,6 +558,10 @@ _addToEnv() { (( "$depHostOffset" <= "$depTargetOffset" )) || continue local hookRef="${hookVar}[$depTargetOffset - $depHostOffset]" if [[ -z "${strictDeps-}" ]]; then + + # Keep track of which packages we have visited before. + local visitedPkgs="" + # Apply environment hooks to all packages during native # compilation to ease the transition. # @@ -570,7 +574,11 @@ _addToEnv() { ${pkgsHostTarget+"${pkgsHostTarget[@]}"} \ ${pkgsTargetTarget+"${pkgsTargetTarget[@]}"} do + if [[ "$visitedPkgs" = *"$pkg"* ]]; then + continue + fi runHook "${!hookRef}" "$pkg" + visitedPkgs+=" $pkg" done else local pkgsRef="${pkgsVar}[$depTargetOffset - $depHostOffset]" |