From df6b73b01c930ae67cf43ea634052a63e2add598 Mon Sep 17 00:00:00 2001 From: Oscar Franco Date: Fri, 26 Dec 2025 13:57:27 -0400 Subject: [PATCH 1/2] Change cmakelist to correctly parse compilation flags --- android/CMakeLists.txt | 14 ++++++++------ android/build.gradle | 8 +++++--- cpp/bridge.cpp | 25 +++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 9 deletions(-) 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}", diff --git a/cpp/bridge.cpp b/cpp/bridge.cpp index f298505f..2db7308f 100644 --- a/cpp/bridge.cpp +++ b/cpp/bridge.cpp @@ -15,6 +15,31 @@ #include #include +// Compile-time verification of SQLite flags +#ifdef SQLITE_SOMETHING +#warning "SQLITE_SOMETHING is defined" +#else +#warning "SQLITE_SOMETHING is NOT defined" +#endif + +#ifdef SQLITE_FOO +#warning "SQLITE_FOO is defined" +#else +#warning "SQLITE_FOO is NOT defined" +#endif + +#ifdef SQLITE_ENABLE_FTS5 +#warning "SQLITE_ENABLE_FTS5 is defined" +#endif + +#ifdef SQLITE_ENABLE_RTREE +#warning "SQLITE_ENABLE_RTREE is defined" +#endif + +#ifdef OP_SQLITE_USE_SQLITE_VEC +#warning "OP_SQLITE_USE_SQLITE_VEC is defined" +#endif + #ifdef TOKENIZERS_HEADER_PATH #include TOKENIZERS_HEADER_PATH #else From 996b5fdc602a3e6f60be593ac8e7c95ee3eccba0 Mon Sep 17 00:00:00 2001 From: Oscar Franco Date: Fri, 26 Dec 2025 14:05:58 -0400 Subject: [PATCH 2/2] Remove generated code --- cpp/bridge.cpp | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/cpp/bridge.cpp b/cpp/bridge.cpp index 2db7308f..f298505f 100644 --- a/cpp/bridge.cpp +++ b/cpp/bridge.cpp @@ -15,31 +15,6 @@ #include #include -// Compile-time verification of SQLite flags -#ifdef SQLITE_SOMETHING -#warning "SQLITE_SOMETHING is defined" -#else -#warning "SQLITE_SOMETHING is NOT defined" -#endif - -#ifdef SQLITE_FOO -#warning "SQLITE_FOO is defined" -#else -#warning "SQLITE_FOO is NOT defined" -#endif - -#ifdef SQLITE_ENABLE_FTS5 -#warning "SQLITE_ENABLE_FTS5 is defined" -#endif - -#ifdef SQLITE_ENABLE_RTREE -#warning "SQLITE_ENABLE_RTREE is defined" -#endif - -#ifdef OP_SQLITE_USE_SQLITE_VEC -#warning "OP_SQLITE_USE_SQLITE_VEC is defined" -#endif - #ifdef TOKENIZERS_HEADER_PATH #include TOKENIZERS_HEADER_PATH #else