mirror of
https://github.com/Zedfrigg/ironbar.git
synced 2025-04-19 11:24:24 +02:00
feat(nix): initial nix feature flags impl
This commit is contained in:
parent
7c36f5cb0c
commit
9984b638b5
2 changed files with 16 additions and 3 deletions
|
@ -59,6 +59,7 @@ Here is an example nix flake that uses Ironbar.
|
|||
enable = true;
|
||||
config = {};
|
||||
style = "";
|
||||
package = inputs.ironbar.packageBuilder ["features"];
|
||||
};
|
||||
}
|
||||
];
|
||||
|
|
18
flake.nix
18
flake.nix
|
@ -31,6 +31,15 @@
|
|||
];
|
||||
};
|
||||
mkRustToolchain = pkgs: pkgs.rust-bin.stable.latest.default;
|
||||
defaultFeatures = [
|
||||
"http"
|
||||
"config+all"
|
||||
"clock"
|
||||
"music+all"
|
||||
"sys_info"
|
||||
"tray"
|
||||
"workspaces+all"
|
||||
];
|
||||
in {
|
||||
overlays.default = final: prev: let
|
||||
rust = mkRustToolchain final;
|
||||
|
@ -40,26 +49,29 @@
|
|||
rustc = rust;
|
||||
};
|
||||
in {
|
||||
ironbar = rustPlatform.buildRustPackage {
|
||||
ironbar = features: rustPlatform.buildRustPackage {
|
||||
pname = "ironbar";
|
||||
version = self.rev or "dirty";
|
||||
src = builtins.path {
|
||||
name = "ironbar";
|
||||
path = prev.lib.cleanSource ./.;
|
||||
};
|
||||
buildNoDefaultFeatures = true;
|
||||
buildFeatures = features;
|
||||
cargoDeps = rustPlatform.importCargoLock {lockFile = ./Cargo.lock;};
|
||||
cargoLock.lockFile = ./Cargo.lock;
|
||||
nativeBuildInputs = with prev; [pkg-config];
|
||||
buildInputs = with prev; [gtk3 gdk-pixbuf gtk-layer-shell libxkbcommon openssl];
|
||||
};
|
||||
};
|
||||
packageBuilder = genSystems(system: self.packages.${system}.ironbar);
|
||||
packages = genSystems (
|
||||
system: let
|
||||
pkgs = pkgsFor system;
|
||||
in
|
||||
(self.overlays.default pkgs pkgs)
|
||||
// {
|
||||
default = self.packages.${system}.ironbar;
|
||||
default = self.packages.${system}.ironbar defaultFeatures;
|
||||
}
|
||||
);
|
||||
devShells = genSystems (system: let
|
||||
|
@ -87,7 +99,7 @@
|
|||
...
|
||||
}: let
|
||||
cfg = config.programs.ironbar;
|
||||
defaultIronbarPackage = self.packages.${pkgs.hostPlatform.system}.default;
|
||||
defaultIronbarPackage = self.packages.${pkgs.hostPlatform.system}.default defaultFeatures;
|
||||
jsonFormat = pkgs.formats.json {};
|
||||
in {
|
||||
options.programs.ironbar = {
|
||||
|
|
Loading…
Add table
Reference in a new issue