diff --git a/lib/nix-patches/default.nix b/lib/nix-patches/default.nix index 5bb723e..0080942 100644 --- a/lib/nix-patches/default.nix +++ b/lib/nix-patches/default.nix @@ -71,12 +71,31 @@ rec { src, name, patches ? mkPatches name, - }: - pkgs.applyPatches { - inherit patches src; + prePatch ? null, + postPatch ? null, + ... + }@args: + if patches == [ ] && prePatch == null && postPatch == null then + src + else + pkgs.stdenvNoCC.mkDerivation ( + args + // { + name = "${name}-patched"; - name = "${name}-patched"; - }; + inherit patches prePatch postPatch; + + preferLocalBuild = true; + allowSubstitutes = true; + phases = [ + "unpackPhase" + "patchPhase" + "installPhase" + ]; + + installPhase = "cp -R . $out"; + } + ); applyPatches' = name: src: applyPatches { inherit name src; }; };