diff --git a/android/CMakeLists.txt b/android/CMakeLists.txt index dcd69ca0..66fd7c4d 100644 --- a/android/CMakeLists.txt +++ b/android/CMakeLists.txt @@ -11,12 +11,14 @@ if (USE_SQLCIPHER) include_directories(../cpp/sqlcipher) endif() -if (USE_LIBSQL) +if (USE_LIBSQL) include_directories(src/main/jniLibs/include) endif() +separate_arguments(SQLITE_FLAGS_LIST UNIX_COMMAND "${SQLITE_FLAGS}") + add_definitions( - ${SQLITE_FLAGS} + ${SQLITE_FLAGS_LIST} ) add_library( @@ -42,11 +44,11 @@ if (USE_SQLCIPHER) -DSQLITE_EXTRA_INIT=sqlcipher_extra_init -DSQLITE_EXTRA_SHUTDOWN=sqlcipher_extra_shutdown ) - + find_package(openssl REQUIRED CONFIG) elseif (USE_LIBSQL) target_sources(${PACKAGE_NAME} PRIVATE ../cpp/libsql/bridge.cpp) - + add_definitions( -DOP_SQLITE_USE_LIBSQL=1 ) @@ -89,7 +91,7 @@ if (USE_SQLCIPHER) elseif (USE_LIBSQL) cmake_path(SET LIBSQL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libsql_experimental.so NORMALIZE) add_library(libsql_experimental SHARED IMPORTED) - set_target_properties(libsql_experimental PROPERTIES + set_target_properties(libsql_experimental PROPERTIES IMPORTED_LOCATION ${LIBSQL_PATH} IMPORTED_NO_SONAME TRUE ) @@ -110,4 +112,4 @@ else () ReactAndroid::jsi fbjni::fbjni ) -endif() \ No newline at end of file +endif() diff --git a/android/build.gradle b/android/build.gradle index 3e92544a..aa34e296 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -46,7 +46,7 @@ if (isUserApp) { // Start from the root + 1 level up (to avoid detecting the op-sqlite/package.json) and traverse upwards to find the first package.json File currentDir = new File("$rootDir/../") packageJsonFile = null - + // Try to find package.json by traversing upwards while (currentDir != null) { File potential = new File(currentDir, "package.json") @@ -70,6 +70,7 @@ if(opsqliteConfig) { useSQLCipher = opsqliteConfig["sqlcipher"] useCRSQLite = opsqliteConfig["crsqlite"] useSqliteVec = opsqliteConfig["sqliteVec"] + performanceMode = opsqliteConfig["performanceMode"] sqliteFlags = opsqliteConfig["sqliteFlags"] ? opsqliteConfig["sqliteFlags"] : "" enableFTS5 = opsqliteConfig["fts5"] @@ -82,7 +83,7 @@ if(useSQLCipher) { println "[OP-SQLITE] using sqlcipher." } else if(useLibsql) { println "[OP-SQLITE] using libsql. Report any issues to Turso" -} +} if(useCRSQLite) { println "[OP-SQLITE] using CR-SQLite" @@ -108,7 +109,7 @@ if(!tokenizers.isEmpty()) { if(useLibsql) { throw new GradleException("[OP-SQLITE] Error: libsql does not support tokenizers. Please disable tokenizers or do not enable libsql.") } - + println "[OP-SQLITE] Tokenizers enabled. Detected tokenizers: " + tokenizers } @@ -168,6 +169,7 @@ android { } cppFlags "-O3 -frtti -fexceptions -Wall -fstack-protector-all" + arguments "-DANDROID_STL=c++_shared", "-DSQLITE_FLAGS='$sqliteFlags'", "-DUSE_SQLCIPHER=${useSQLCipher ? 1 : 0}",