4YM3EFLK6UCNW3H25MPG7P65DVSZOMRSSGYUVJYJKAUFQSBKCKTQC
then lib.warn "`buildRustCrate` is deprecated, use `buildRustCrateForPkgs` instead" (_: buildRustCrate)
then lib.warn "crate2nix: Passing `buildRustCrate` as argument to Cargo.nix is deprecated. If you don't customize `buildRustCrate`, replace `callPackage ./Cargo.nix {}` by `import ./Cargo.nix { inherit pkgs; }`, and if you need to customize `buildRustCrate`, use `buildRustCrateForPkgs` instead." (_: buildRustCrate)
testCrateFlags: list of flags to pass to the test exectuable
testInputs: list of packages that should be available during test execution
testCrateFlags: list of flags to pass to the test exectuable
testInputs: list of packages that should be available during test execution
# If the user hasn't set any pre/post commands, we don't want to
# insert empty lines. This means that any existing users of crate2nix
# don't get a spurious rebuild unless they set these explicitly.
testCommand = pkgs.lib.concatStringsSep "\n"
(pkgs.lib.filter (s: s != "") [
testPreRun
"$f $testCrateFlags 2>&1 | tee -a $out"
testPostRun
]);
If multiple paths to a dependency enable different features, the
corresponding feature sets are merged. Features in rust are additive.
If multiple paths to a dependency enable different features, the
corresponding feature sets are merged. Features in rust are additive.
featureMap is an attribute set which maps feature names to lists of further
feature names to enable in case this feature is selected.
featureMap is an attribute set which maps feature names to lists of further
feature names to enable in case this feature is selected.
/* This function adds optional dependencies as features if they are enabled
indirectly by dependency features. This function mimics Cargo's behavior
described in a note at:
https://doc.rust-lang.org/nightly/cargo/reference/features.html#dependency-features
*/
enableFeatures = dependencies: features:
assert (builtins.isList features);
assert (builtins.isList dependencies);
let
additionalFeatures = lib.concatMap
(
dependency:
assert (builtins.isAttrs dependency);
let
enabled = builtins.any (doesFeatureEnableDependency dependency) features;
in
if (dependency.optional or false) && enabled then [ dependency.name ] else [ ]
)
dependencies;
in
sortedUnique (features ++ additionalFeatures);