diff --git a/pkgs/nim-packages/generic.nix b/pkgs/nim-packages/generic.nix index d44fe22..6cc0f5d 100644 --- a/pkgs/nim-packages/generic.nix +++ b/pkgs/nim-packages/generic.nix @@ -1,15 +1,23 @@ { stdenv, nim }: -{ name, src, nimDeps ? [], buildInputs ? [], nativeBuildInputs ? [], - patches ? [], ... }: +{ name, src, nimDeps ? [], buildInputs ? [], patches ? [], patchPhase ? "", ... }: +let + getRecursiveBuildInputs = deps: with stdenv.lib.lists; + optionals (deps != []) ((head deps).buildInputs ++ + (getRecursiveBuildInputs (head deps).nimDeps) ++ + (getRecursiveBuildInputs (tail deps))); + recursiveBuildInputs = buildInputs ++ (getRecursiveBuildInputs nimDeps); +in stdenv.mkDerivation { name = name; src = src; patches = patches; - buildInputs = [ nim ] ++ buildInputs; - nativeBuildInputs = nativeBuildInputs; - LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath (buildInputs ++ nativeBuildInputs); + nativeBuildInputs = [ nim ]; + buildInputs = recursiveBuildInputs; + nimDeps = nimDeps; + patchPhase = patchPhase; + LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath recursiveBuildInputs; buildPhase = '' HOME=$TMPDIR mkdir -p $HOME/.nimble/pkgs