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
|
|
@ -23,6 +23,11 @@
|
||||||
|
|
||||||
oci-image = self.callPackage ./nix/pkgs/oci-image {};
|
oci-image = self.callPackage ./nix/pkgs/oci-image {};
|
||||||
|
|
||||||
|
# Return a new scope with overrides applied to the 'default' package
|
||||||
|
overrideDefaultPackage = args: self.overrideScope (final: prev: {
|
||||||
|
default = prev.default.override args;
|
||||||
|
});
|
||||||
|
|
||||||
shell = self.callPackage ./nix/shell.nix {};
|
shell = self.callPackage ./nix/shell.nix {};
|
||||||
|
|
||||||
# The Rust toolchain to use
|
# The Rust toolchain to use
|
||||||
|
|
@ -84,6 +89,9 @@
|
||||||
);
|
);
|
||||||
|
|
||||||
devShells.default = (mkScope pkgs).shell;
|
devShells.default = (mkScope pkgs).shell;
|
||||||
|
devShells.all-features = ((mkScope pkgs).overrideDefaultPackage {
|
||||||
|
all-features = true;
|
||||||
|
}).shell;
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
//
|
//
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
# Options (keep sorted)
|
# Options (keep sorted)
|
||||||
, default-features ? true
|
, default-features ? true
|
||||||
|
, all-features ? false
|
||||||
, features ? []
|
, features ? []
|
||||||
, profile ? "release"
|
, profile ? "release"
|
||||||
}:
|
}:
|
||||||
|
|
@ -18,10 +19,17 @@
|
||||||
let
|
let
|
||||||
# We perform default-feature unification in nix, because some of the dependencies
|
# We perform default-feature unification in nix, because some of the dependencies
|
||||||
# on the nix side depend on feature values.
|
# on the nix side depend on feature values.
|
||||||
allDefaultFeatures =
|
cargoManifest = lib.importTOML "${inputs.self}/Cargo.toml";
|
||||||
(lib.importTOML "${inputs.self}/Cargo.toml").features.default;
|
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.unique
|
||||||
(features ++ lib.optionals default-features allDefaultFeatures);
|
(features ++
|
||||||
|
lib.optionals default-features allDefaultFeatures ++
|
||||||
|
lib.optionals all-features allFeatures);
|
||||||
|
|
||||||
featureEnabled = feature : builtins.elem feature features';
|
featureEnabled = feature : builtins.elem feature features';
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue