Skip to content

Commit df6b73b

Browse files
committed
Change cmakelist to correctly parse compilation flags
1 parent cf18581 commit df6b73b

File tree

3 files changed

+38
-9
lines changed

3 files changed

+38
-9
lines changed

android/CMakeLists.txt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@ if (USE_SQLCIPHER)
1111
include_directories(../cpp/sqlcipher)
1212
endif()
1313

14-
if (USE_LIBSQL)
14+
if (USE_LIBSQL)
1515
include_directories(src/main/jniLibs/include)
1616
endif()
1717

18+
separate_arguments(SQLITE_FLAGS_LIST UNIX_COMMAND "${SQLITE_FLAGS}")
19+
1820
add_definitions(
19-
${SQLITE_FLAGS}
21+
${SQLITE_FLAGS_LIST}
2022
)
2123

2224
add_library(
@@ -42,11 +44,11 @@ if (USE_SQLCIPHER)
4244
-DSQLITE_EXTRA_INIT=sqlcipher_extra_init
4345
-DSQLITE_EXTRA_SHUTDOWN=sqlcipher_extra_shutdown
4446
)
45-
47+
4648
find_package(openssl REQUIRED CONFIG)
4749
elseif (USE_LIBSQL)
4850
target_sources(${PACKAGE_NAME} PRIVATE ../cpp/libsql/bridge.cpp)
49-
51+
5052
add_definitions(
5153
-DOP_SQLITE_USE_LIBSQL=1
5254
)
@@ -89,7 +91,7 @@ if (USE_SQLCIPHER)
8991
elseif (USE_LIBSQL)
9092
cmake_path(SET LIBSQL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libsql_experimental.so NORMALIZE)
9193
add_library(libsql_experimental SHARED IMPORTED)
92-
set_target_properties(libsql_experimental PROPERTIES
94+
set_target_properties(libsql_experimental PROPERTIES
9395
IMPORTED_LOCATION ${LIBSQL_PATH}
9496
IMPORTED_NO_SONAME TRUE
9597
)
@@ -110,4 +112,4 @@ else ()
110112
ReactAndroid::jsi
111113
fbjni::fbjni
112114
)
113-
endif()
115+
endif()

android/build.gradle

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ if (isUserApp) {
4646
// Start from the root + 1 level up (to avoid detecting the op-sqlite/package.json) and traverse upwards to find the first package.json
4747
File currentDir = new File("$rootDir/../")
4848
packageJsonFile = null
49-
49+
5050
// Try to find package.json by traversing upwards
5151
while (currentDir != null) {
5252
File potential = new File(currentDir, "package.json")
@@ -70,6 +70,7 @@ if(opsqliteConfig) {
7070
useSQLCipher = opsqliteConfig["sqlcipher"]
7171
useCRSQLite = opsqliteConfig["crsqlite"]
7272
useSqliteVec = opsqliteConfig["sqliteVec"]
73+
7374
performanceMode = opsqliteConfig["performanceMode"]
7475
sqliteFlags = opsqliteConfig["sqliteFlags"] ? opsqliteConfig["sqliteFlags"] : ""
7576
enableFTS5 = opsqliteConfig["fts5"]
@@ -82,7 +83,7 @@ if(useSQLCipher) {
8283
println "[OP-SQLITE] using sqlcipher."
8384
} else if(useLibsql) {
8485
println "[OP-SQLITE] using libsql. Report any issues to Turso"
85-
}
86+
}
8687

8788
if(useCRSQLite) {
8889
println "[OP-SQLITE] using CR-SQLite"
@@ -108,7 +109,7 @@ if(!tokenizers.isEmpty()) {
108109
if(useLibsql) {
109110
throw new GradleException("[OP-SQLITE] Error: libsql does not support tokenizers. Please disable tokenizers or do not enable libsql.")
110111
}
111-
112+
112113
println "[OP-SQLITE] Tokenizers enabled. Detected tokenizers: " + tokenizers
113114
}
114115

@@ -168,6 +169,7 @@ android {
168169
}
169170

170171
cppFlags "-O3 -frtti -fexceptions -Wall -fstack-protector-all"
172+
171173
arguments "-DANDROID_STL=c++_shared",
172174
"-DSQLITE_FLAGS='$sqliteFlags'",
173175
"-DUSE_SQLCIPHER=${useSQLCipher ? 1 : 0}",

cpp/bridge.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,31 @@
1515
#include <unordered_map>
1616
#include <variant>
1717

18+
// Compile-time verification of SQLite flags
19+
#ifdef SQLITE_SOMETHING
20+
#warning "SQLITE_SOMETHING is defined"
21+
#else
22+
#warning "SQLITE_SOMETHING is NOT defined"
23+
#endif
24+
25+
#ifdef SQLITE_FOO
26+
#warning "SQLITE_FOO is defined"
27+
#else
28+
#warning "SQLITE_FOO is NOT defined"
29+
#endif
30+
31+
#ifdef SQLITE_ENABLE_FTS5
32+
#warning "SQLITE_ENABLE_FTS5 is defined"
33+
#endif
34+
35+
#ifdef SQLITE_ENABLE_RTREE
36+
#warning "SQLITE_ENABLE_RTREE is defined"
37+
#endif
38+
39+
#ifdef OP_SQLITE_USE_SQLITE_VEC
40+
#warning "OP_SQLITE_USE_SQLITE_VEC is defined"
41+
#endif
42+
1843
#ifdef TOKENIZERS_HEADER_PATH
1944
#include TOKENIZERS_HEADER_PATH
2045
#else

0 commit comments

Comments
 (0)