buildRustCrate: don't try to set CARGO_FEATURE_ variables for dep: features

These features are internal-only, have special characters that bash
doesn't support in variable names, and aren't normally given
environment variables by cargo as far as I can tell.
This commit is contained in:
Faye Duxovni 2022-04-15 20:13:47 -04:00 committed by Yt
parent 4624d0a8d3
commit bc5e8ae506

View File

@ -277,9 +277,14 @@ crate_: lib.makeOverridable
# Create a list of features that are enabled by the crate itself and
# through the features argument of buildRustCrate. Exclude features
# with a forward slash, since they are passed through to dependencies.
# with a forward slash, since they are passed through to dependencies,
# and dep: features, since they're internal-only and do nothing except
# enable optional dependencies.
crateFeatures = lib.optionals (crate ? features)
(builtins.filter (f: !lib.hasInfix "/" f) (crate.features ++ features));
(builtins.filter
(f: !(lib.hasInfix "/" f || lib.hasPrefix "dep:" f))
(crate.features ++ features)
);
libName = if crate ? libName then crate.libName else crate.crateName;
libPath = if crate ? libPath then crate.libPath else "";