@@ -34,6 +34,7 @@ def reactNativeArchitectures() {
3434
3535def useSQLCipher = false
3636def useLibsql = false
37+ def useTurso = false
3738def useCRSQLite = false
3839def performanceMode = false
3940def sqliteFlags = " "
@@ -79,12 +80,19 @@ if(opsqliteConfig) {
7980 sqliteFlags = opsqliteConfig[" sqliteFlags" ] ? opsqliteConfig[" sqliteFlags" ] : " "
8081 enableFTS5 = !! opsqliteConfig[" fts5" ]
8182 useLibsql = !! opsqliteConfig[" libsql" ]
83+ useTurso = !! opsqliteConfig[" turso" ]
8284 enableRtree = !! opsqliteConfig[" rtree" ]
8385 tokenizers = opsqliteConfig[" tokenizers" ] ? opsqliteConfig[" tokenizers" ] : []
8486}
8587
88+ if (useLibsql && useTurso) {
89+ throw new GradleException (" [OP-SQLITE] Error: libsql and turso backends are mutually exclusive." )
90+ }
91+
8692if (useSQLCipher) {
8793 println " [OP-SQLITE] using sqlcipher."
94+ } else if (useTurso) {
95+ println " [OP-SQLITE] using turso backend."
8896} else if (useLibsql) {
8997 println " [OP-SQLITE] using libsql. Report any issues to Turso"
9098}
@@ -114,6 +122,10 @@ if(!tokenizers.isEmpty()) {
114122 throw new GradleException (" [OP-SQLITE] Error: libsql does not support tokenizers. Please disable tokenizers or do not enable libsql." )
115123 }
116124
125+ if (useTurso) {
126+ throw new GradleException (" [OP-SQLITE] Error: turso backend does not support tokenizers. Please disable tokenizers or do not enable turso." )
127+ }
128+
117129 println " [OP-SQLITE] Tokenizers enabled. Detected tokenizers: " + tokenizers
118130}
119131
@@ -127,6 +139,7 @@ android {
127139 targetSdkVersion getExtOrIntegerDefault(" targetSdkVersion" )
128140
129141 buildConfigField " boolean" , " USE_LIBSQL" , " ${ useLibsql} "
142+ buildConfigField " boolean" , " USE_TURSO" , " ${ useTurso} "
130143
131144 externalNativeBuild {
132145 cmake {
@@ -138,6 +151,10 @@ android {
138151 cFlags + = " -DOP_SQLITE_USE_LIBSQL=1"
139152 cppFlags + = " -DOP_SQLITE_USE_LIBSQL=1"
140153 }
154+ if (useTurso) {
155+ cFlags + = " -DOP_SQLITE_USE_TURSO=1"
156+ cppFlags + = " -DOP_SQLITE_USE_TURSO=1"
157+ }
141158 if (useCRSQLite) {
142159 cFlags + = " -DOP_SQLITE_USE_CRSQLITE=1"
143160 cppFlags + = " -DOP_SQLITE_USE_CRSQLITE=1"
@@ -179,6 +196,7 @@ android {
179196 " -DUSE_SQLCIPHER=${ useSQLCipher ? 1 : 0} " ,
180197 " -DUSE_CRSQLITE=${ useCRSQLite ? 1 : 0} " ,
181198 " -DUSE_LIBSQL=${ useLibsql ? 1 : 0} " ,
199+ " -DUSE_TURSO=${ useTurso ? 1 : 0} " ,
182200 " -DUSE_SQLITE_VEC=${ useSqliteVec ? 1 : 0} " ,
183201 " -DUSER_DEFINED_SOURCE_FILES=${ sourceFiles} " ,
184202 " -DUSER_DEFINED_TOKENIZERS_HEADER_PATH='${ tokenizersHeaderPath} '" ,
@@ -244,6 +262,9 @@ android {
244262 if (useLibsql) {
245263 srcDirs + = ' src/main/jniLibs'
246264 }
265+ if (useTurso) {
266+ srcDirs + = ' src/main/tursoLibs'
267+ }
247268 if (useCRSQLite) {
248269 srcDirs + = ' src/main/libcrsqlite'
249270 }
0 commit comments