diff options
Diffstat (limited to 'pkgs/build-support/rust/build-rust-crate/helpers.nix')
-rw-r--r-- | pkgs/build-support/rust/build-rust-crate/helpers.nix | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/pkgs/build-support/rust/build-rust-crate/helpers.nix b/pkgs/build-support/rust/build-rust-crate/helpers.nix index 14d997b2d5c..8c5e9dfef2f 100644 --- a/pkgs/build-support/rust/build-rust-crate/helpers.nix +++ b/pkgs/build-support/rust/build-rust-crate/helpers.nix @@ -3,23 +3,23 @@ kernel = stdenv.hostPlatform.parsed.kernel.name; abi = stdenv.hostPlatform.parsed.abi.name; cpu = stdenv.hostPlatform.parsed.cpu.name; - updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions); + updateFeatures = f: up: functions: lib.deepSeq f (lib.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions); mapFeatures = features: map (fun: fun { features = features; }); - mkFeatures = feat: lib.lists.foldl (features: featureName: + mkFeatures = feat: lib.foldl (features: featureName: if feat.${featureName} or false then [ featureName ] ++ features else features - ) [] (builtins.attrNames feat); - include = includedFiles: src: builtins.filterSource (path: type: - lib.lists.any (f: + ) [] (lib.attrNames feat); + include = includedFiles: src: lib.filterSource (path: type: + lib.any (f: let p = toString (src + ("/" + f)); in p == path || (lib.strings.hasPrefix (p + "/") path) ) includedFiles ) src; - exclude = excludedFiles: src: builtins.filterSource (path: type: - lib.lists.all (f: + exclude = excludedFiles: src: lib.filterSource (path: type: + lib.all (f: !lib.strings.hasPrefix (toString (src + ("/" + f))) path ) excludedFiles ) src; |