-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathflake.nix
74 lines (67 loc) · 1.67 KB
/
flake.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
{
inputs = {
nixpkgs = {
url = "github:nixos/nixpkgs/nixos-unstable";
};
flake-utils = {
url = "github:numtide/flake-utils";
};
};
outputs = { self, nixpkgs, flake-utils, ... }: flake-utils.lib.eachSystem [
"x86_64-linux"
] (system:
let
pkgs = import nixpkgs {
inherit system;
};
kmindexBuildInputs = [
pkgs.gcc12
pkgs.cmake
pkgs.zlib
pkgs.gbenchmark
pkgs.boost
pkgs.bzip2
pkgs.xxHash
pkgs.nlohmann_json
pkgs.fmt_8
pkgs.gtest
pkgs.spdlog
];
kmindex = (with pkgs; stdenvNoCC.mkDerivation {
pname = "kmindex";
version = "0.5.2";
src = builtins.fetchGit {
url = "https://github.com/tlemane/kmindex";
rev = "0d3792fa5a242540582f16b4542311a473c0b7c3";
submodules = true;
};
nativeBuildInputs = kmindexBuildInputs;
configurePhase = ''
cmake -S . -B build
'';
buildPhase = ''
cmake --build ./build
'';
installPhase = ''
mkdir -p $out/bin
cp ./build/app/kmindex/kmindex $out/bin
cp ./build/app/kmindex-server/kmindex-server $out/bin
'';
}
);
in rec {
defaultApp = flake-utils.lib.mkApp {
drv = defaultPackage;
};
defaultPackage = kmindex;
devShell = pkgs.mkShell {
name = "kmindex_dev_env";
buildInputs = kmindexBuildInputs;
};
apps.default = {
type = "app";
program = "${self.defaultPackage.${system}}/bin/kmindex";
};
}
);
}