Skip to content

Commit df0e895

Browse files
committed
chore: add flake.nix for reproducible builds
1 parent d665b21 commit df0e895

File tree

2 files changed

+118
-0
lines changed

2 files changed

+118
-0
lines changed

flake.lock

Lines changed: 61 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
{
2+
description = "SQLite Vector Extension";
3+
4+
inputs = {
5+
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6+
flake-utils.url = "github:numtide/flake-utils";
7+
};
8+
9+
outputs = { self, nixpkgs, flake-utils }:
10+
flake-utils.lib.eachDefaultSystem (system:
11+
let
12+
pkgs = nixpkgs.legacyPackages.${system};
13+
stdenv = pkgs.stdenv;
14+
version = "0.9.53";
15+
in
16+
{
17+
packages.default = stdenv.mkDerivation {
18+
pname = "sqlite-vector";
19+
inherit version;
20+
21+
src = pkgs.lib.cleanSource ./.;
22+
23+
makeFlags = [
24+
"CC=${stdenv.cc.targetPrefix}cc"
25+
] ++ pkgs.lib.optionals stdenv.isDarwin [
26+
"ARCH=${if stdenv.hostPlatform.isAarch64 then "arm64" else "x86_64"}"
27+
];
28+
29+
installPhase = "install -D dist/vector* -t $out/lib";
30+
31+
checkInputs = [ pkgs.sqlite ];
32+
doCheck = true;
33+
checkPhase = ''
34+
make test
35+
'';
36+
};
37+
38+
devShells.default =
39+
let
40+
sqlite-vector = self.packages.${system}.default;
41+
in
42+
pkgs.mkShell {
43+
packages = [
44+
pkgs.sqlite
45+
pkgs.gnumake
46+
sqlite-vector
47+
];
48+
49+
shellHook = ''
50+
export SQLITE_VECTOR_LIB="${sqlite-vector}/lib/vector${stdenv.hostPlatform.extensions.sharedLibrary}"
51+
echo "SQLite Vector extension available at: $SQLITE_VECTOR_LIB"
52+
echo "Load it in sqlite3 with: .load $SQLITE_VECTOR_LIB"
53+
'';
54+
};
55+
}
56+
);
57+
}

0 commit comments

Comments
 (0)