mirror of
https://gitlab.computer.surgery/matrix/grapevine.git
synced 2025-12-17 07:41:23 +01:00
add all-features devshell
Because the nix rocksdb build depends on the jemalloc feature, you need to use a different devshell when passing --all-features to cargo than the default.
This commit is contained in:
parent
8f24ac1f27
commit
fa48c48d52
2 changed files with 19 additions and 3 deletions
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
# Options (keep sorted)
|
||||
, default-features ? true
|
||||
, all-features ? false
|
||||
, features ? []
|
||||
, profile ? "release"
|
||||
}:
|
||||
|
|
@ -18,10 +19,17 @@
|
|||
let
|
||||
# We perform default-feature unification in nix, because some of the dependencies
|
||||
# on the nix side depend on feature values.
|
||||
allDefaultFeatures =
|
||||
(lib.importTOML "${inputs.self}/Cargo.toml").features.default;
|
||||
cargoManifest = lib.importTOML "${inputs.self}/Cargo.toml";
|
||||
allDefaultFeatures = cargoManifest.features.default;
|
||||
allFeatures = lib.unique (
|
||||
lib.remove "default" (lib.attrNames cargoManifest.features) ++
|
||||
lib.attrNames
|
||||
(lib.filterAttrs (_: dependency: dependency.optional or false)
|
||||
cargoManifest.dependencies));
|
||||
features' = lib.unique
|
||||
(features ++ lib.optionals default-features allDefaultFeatures);
|
||||
(features ++
|
||||
lib.optionals default-features allDefaultFeatures ++
|
||||
lib.optionals all-features allFeatures);
|
||||
|
||||
featureEnabled = feature : builtins.elem feature features';
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue