tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
0
fork
atom
lol
0
fork
atom
overview
issues
pulls
pipelines
sqlite-vss: init at 0.1.2
Enno Richter
2 years ago
ebafcea7
f9c7c12d
+94
2 changed files
expand all
collapse all
unified
split
pkgs
by-name
sq
sqlite-vss
package.nix
use-nixpkgs-libs.patch
+53
pkgs/by-name/sq/sqlite-vss/package.nix
···
1
1
+
{ lib
2
2
+
, cmake
3
3
+
, faiss
4
4
+
, fetchFromGitHub
5
5
+
, gomp
6
6
+
, llvmPackages
7
7
+
, nlohmann_json
8
8
+
, sqlite
9
9
+
, stdenv
10
10
+
}:
11
11
+
12
12
+
stdenv.mkDerivation (finalAttrs: {
13
13
+
pname = "sqlite-vss";
14
14
+
version = "0.1.2";
15
15
+
16
16
+
src = fetchFromGitHub {
17
17
+
owner = "asg017";
18
18
+
repo = "sqlite-vss";
19
19
+
rev = "v${finalAttrs.version}";
20
20
+
hash = "sha256-cb9UlSUAZp8B5NpNDBvJ2+ung98gjVKLxrM2Ek9fOcs=";
21
21
+
};
22
22
+
23
23
+
patches = [ ./use-nixpkgs-libs.patch ];
24
24
+
25
25
+
nativeBuildInputs = [ cmake ];
26
26
+
27
27
+
buildInputs = [ nlohmann_json faiss sqlite ]
28
28
+
++ lib.optional stdenv.isLinux gomp
29
29
+
++ lib.optional stdenv.isDarwin llvmPackages.openmp;
30
30
+
31
31
+
SQLITE_VSS_CMAKE_VERSION = finalAttrs.version;
32
32
+
33
33
+
installPhase = ''
34
34
+
runHook preInstall
35
35
+
36
36
+
install -Dm444 -t "$out/lib" \
37
37
+
"libsqlite_vector0${stdenv.hostPlatform.extensions.staticLibrary}" \
38
38
+
"libsqlite_vss0${stdenv.hostPlatform.extensions.staticLibrary}" \
39
39
+
"vector0${stdenv.hostPlatform.extensions.sharedLibrary}" \
40
40
+
"vss0${stdenv.hostPlatform.extensions.sharedLibrary}"
41
41
+
42
42
+
runHook postInstall
43
43
+
'';
44
44
+
45
45
+
meta = with lib;{
46
46
+
description = "SQLite extension for efficient vector search based on Faiss";
47
47
+
homepage = "https://github.com/asg017/sqlite-vss";
48
48
+
changelog = "https://github.com/asg017/sqlite-vss/releases/tag/v${finalAttrs.version}";
49
49
+
license = licenses.mit;
50
50
+
maintainers = with maintainers; [ elohmeier ];
51
51
+
platforms = platforms.unix;
52
52
+
};
53
53
+
})
+41
pkgs/by-name/sq/sqlite-vss/use-nixpkgs-libs.patch
···
1
1
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2
2
+
index c59d993..5606b46 100644
3
3
+
--- a/CMakeLists.txt
4
4
+
+++ b/CMakeLists.txt
5
5
+
@@ -18,15 +18,12 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
6
6
+
option(FAISS_ENABLE_GPU "" OFF)
7
7
+
option(FAISS_ENABLE_PYTHON "" OFF)
8
8
+
option(BUILD_TESTING "" OFF)
9
9
+
-add_subdirectory(./vendor/faiss)
10
10
+
-
11
11
+
-# vendor in SQLite amalgammation
12
12
+
-include_directories(vendor/sqlite)
13
13
+
-link_directories(BEFORE vendor/sqlite)
14
14
+
+find_package(OpenMP REQUIRED)
15
15
+
+find_package(faiss REQUIRED)
16
16
+
17
17
+
# Adding nlohmann_json for json parsing
18
18
+
set(JSON_BuildTests OFF CACHE INTERNAL "")
19
19
+
-add_subdirectory(vendor/json)
20
20
+
+find_package(nlohmann_json REQUIRED)
21
21
+
22
22
+
# ================================== sqlite-vector ================================== #
23
23
+
add_library(sqlite-vector SHARED src/sqlite-vector.cpp)
24
24
+
@@ -49,7 +46,7 @@ target_compile_definitions(sqlite-vector-static PUBLIC SQLITE_CORE)
25
25
+
# ================================== sqlite-vss ================================== #
26
26
+
add_library(sqlite-vss SHARED src/sqlite-vss.cpp)
27
27
+
target_link_libraries(sqlite-vss sqlite3)
28
28
+
-target_link_libraries(sqlite-vss faiss_avx2)
29
29
+
+target_link_libraries(sqlite-vss faiss)
30
30
+
target_include_directories(sqlite-vss PUBLIC "${PROJECT_BINARY_DIR}")
31
31
+
32
32
+
set_target_properties(sqlite-vss PROPERTIES PREFIX "")
33
33
+
@@ -58,7 +55,7 @@ set_target_properties(sqlite-vss PROPERTIES OUTPUT_NAME "vss0")
34
34
+
# ============================== sqlite-vss-static =============================== #
35
35
+
add_library(sqlite-vss-static STATIC src/sqlite-vss.cpp)
36
36
+
target_link_libraries(sqlite-vss-static PRIVATE sqlite3)
37
37
+
-target_link_libraries(sqlite-vss-static PUBLIC faiss_avx2)
38
38
+
+target_link_libraries(sqlite-vss-static PUBLIC faiss)
39
39
+
target_link_options(sqlite-vss-static PRIVATE "-Wl,-all_load")
40
40
+
target_include_directories(sqlite-vss-static PUBLIC "${PROJECT_BINARY_DIR}")
41
41
+
set_target_properties(sqlite-vss-static PROPERTIES OUTPUT_NAME "sqlite_vss0")