79 lines
1.5 KiB
Nix
79 lines
1.5 KiB
Nix
{
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
systems.url = "github:nix-systems/default";
|
|
treefmt-nix.url = "github:numtide/treefmt-nix";
|
|
flake-compat = {
|
|
url = "github:NixOS/flake-compat";
|
|
flake = false;
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
nixpkgs,
|
|
...
|
|
}@inputs:
|
|
with builtins;
|
|
with nixpkgs.lib;
|
|
|
|
let
|
|
doubles = import inputs.systems;
|
|
forAllSystems = genAttrs doubles;
|
|
|
|
pkgs_gen =
|
|
{ ... }@args:
|
|
import nixpkgs args;
|
|
|
|
dmm_gen =
|
|
{
|
|
pkgs,
|
|
tools ? [ ],
|
|
specialArgs ? { },
|
|
}:
|
|
pkgs.rustPlatform.buildRustPackage (
|
|
let
|
|
src = cleanSource ./.;
|
|
in
|
|
final:
|
|
{
|
|
pname = "dmm";
|
|
version = "0.0.9";
|
|
|
|
inherit src;
|
|
cargoLock.lockFile = src + "/Cargo.lock";
|
|
nativeBuildInputs = tools;
|
|
|
|
|
|
buildInputs = with pkgs; [
|
|
sqlite
|
|
lrzip
|
|
];
|
|
}
|
|
// specialArgs
|
|
);
|
|
in
|
|
{
|
|
packages = forAllSystems (
|
|
system:
|
|
let
|
|
pkgs = pkgs_gen { inherit system; };
|
|
dmm = dmm_gen { inherit pkgs; };
|
|
in
|
|
{
|
|
inherit dmm;
|
|
default = dmm;
|
|
}
|
|
);
|
|
formatter = forAllSystems (
|
|
system:
|
|
let
|
|
pkgs = pkgs_gen { inherit system; };
|
|
in
|
|
inputs.treefmt-nix.lib.mkWrapper pkgs {
|
|
programs.nixfmt.enable = true;
|
|
}
|
|
);
|
|
};
|
|
}
|