anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / build-support / rust / build-rust-crate / helpers.nix
blob386d0ce7084f04d13d80d9db58de6aed67634d95
1 {stdenv, lib}:
3   kernel = stdenv.hostPlatform.parsed.kernel.name;
4   abi = stdenv.hostPlatform.parsed.abi.name;
5   cpu = stdenv.hostPlatform.parsed.cpu.name;
6    updateFeatures = f: up: functions: lib.deepSeq f (lib.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
7    mapFeatures = features: map (fun: fun { features = features; });
8    mkFeatures = feat: lib.foldl (features: featureName:
9      if feat.${featureName} or false then
10        [ featureName ] ++ features
11      else
12        features
13    ) [] (lib.attrNames feat);
14   include = includedFiles: src: builtins.filterSource (path: type:
15      lib.any (f:
16        let p = toString (src + ("/" + f));
17        in
18        p == path || (lib.strings.hasPrefix (p + "/") path)
19      ) includedFiles
20   ) src;
21   exclude = excludedFiles: src: builtins.filterSource (path: type:
22     lib.all (f:
23        !lib.strings.hasPrefix (toString (src + ("/" + f))) path
24     ) excludedFiles
25   ) src;