diff options
Diffstat (limited to 'buildRustCrateHelpers.nix')
-rw-r--r-- | buildRustCrateHelpers.nix | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/buildRustCrateHelpers.nix b/buildRustCrateHelpers.nix new file mode 100644 index 0000000..3fdcb66 --- /dev/null +++ b/buildRustCrateHelpers.nix @@ -0,0 +1,18 @@ +{ lib, buildPlatform }: { + kernel = buildPlatform.parsed.kernel.name; + abi = buildPlatform.parsed.abi.name; + include = includedFiles: src: builtins.filterSource (path: type: + lib.lists.any (f: + let p = toString (src + ("/" + f)); in + (path == p) || (type == "directory" && lib.strings.hasPrefix path p) + ) includedFiles + ) src; + updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.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: + if feat.${featureName} or false then + [ featureName ] ++ features + else + features + ) [] (builtins.attrNames feat); +} |