@@ -21,7 +21,7 @@ add_library(${PLUGIN_NAME} SHARED
21
21
###
22
22
23
23
# Essentially, the idea of this build script is to compile a sqlite3.dll
24
- # and make Fluter bundle that with the final app.
24
+ # and make Flutter bundle that with the final app.
25
25
# It looks like we can't avoid building a sqlite3_flutter_libs.dll too,
26
26
# but that's not on me.
27
27
@@ -34,57 +34,62 @@ target_include_directories(${PLUGIN_NAME} INTERFACE
34
34
target_link_libraries (${PLUGIN_NAME} PRIVATE flutter flutter_wrapper_plugin )
35
35
36
36
include (FetchContent )
37
+
37
38
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0" )
38
39
# cmake 3.24.0 added the `DOWNLOAD_EXTRACT_TIMESTAMP` and prints an ugly warning when
39
40
# the default is used, so override it to the recommended behavior.
40
41
# We can't really ask users to use a cmake that recent, so there's this if here.
41
42
FetchContent_Declare (
42
43
sqlite3
43
- URL https://sqlite.org/2023 /sqlite-autoconf-3430000 .tar.gz
44
+ URL https://sqlite.org/2024 /sqlite-autoconf-3460000 .tar.gz
44
45
DOWNLOAD_EXTRACT_TIMESTAMP NEW
45
46
)
46
47
else ()
47
48
FetchContent_Declare (
48
49
sqlite3
49
- URL https://sqlite.org/2023 /sqlite-autoconf-3430000 .tar.gz
50
+ URL https://sqlite.org/2024 /sqlite-autoconf-3460000 .tar.gz
50
51
)
51
52
endif ()
52
- FetchContent_MakeAvailable (sqlite3 )
53
53
54
- add_library (sqlite3 SHARED "sqlite3_flutter.c" )
54
+ # Only fetch and build sqlite3 if it hasn't been added yet
55
+ if (NOT TARGET sqlite3 )
56
+ FetchContent_MakeAvailable (sqlite3 )
55
57
56
- target_include_directories (sqlite3 PRIVATE "${sqlite3_SOURCE_DIR} " )
57
- target_compile_options (sqlite3 PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O2>" "/w" )
58
+ add_library (sqlite3 SHARED "sqlite3_flutter.c" )
58
59
59
- # Note: Keep in sync with https://github.com/simolus3/sqlite-native-libraries/blob/master/sqlite3-native-library/cpp/CMakeLists.txt
60
- target_compile_definitions (sqlite3 PRIVATE
61
- SQLITE_ENABLE_FTS5
62
- SQLITE_ENABLE_RTREE
63
- SQLITE_DQS=0
64
- SQLITE_DEFAULT_MEMSTATUS=0
65
- SQLITE_TEMP_STORE=2
66
- SQLITE_MAX_EXPR_DEPTH=0
67
- SQLITE_OMIT_AUTHORIZATION
68
- SQLITE_OMIT_DECLTYPE
69
- SQLITE_OMIT_DEPRECATED
70
- SQLITE_OMIT_GET_TABLE
71
- SQLITE_OMIT_LOAD_EXTENSION
72
- SQLITE_OMIT_PROGRESS_CALLBACK
73
- SQLITE_OMIT_SHARED_CACHE
74
- SQLITE_OMIT_TCL_VARIABLE
75
- SQLITE_OMIT_TRACE
76
- SQLITE_USE_ALLOCA
77
- SQLITE_UNTESTABLE
78
- SQLITE_HAVE_ISNAN
79
- SQLITE_HAVE_LOCALTIME_R
80
- SQLITE_HAVE_LOCALTIME_S
81
- )
60
+ target_include_directories (sqlite3 PRIVATE "${sqlite3_SOURCE_DIR} " )
61
+ target_compile_options (sqlite3 PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O2>" "/w" )
82
62
83
- # Ensure sqlite3 actually gets build
84
- add_dependencies (${PLUGIN_NAME} sqlite3 )
63
+ # Note: Keep in sync with https://github.com/simolus3/sqlite-native-libraries/blob/master/sqlite3-native-library/cpp/CMakeLists.txt
64
+ target_compile_definitions (sqlite3 PRIVATE
65
+ SQLITE_ENABLE_DBSTAT_VTAB
66
+ SQLITE_ENABLE_FTS5
67
+ SQLITE_ENABLE_RTREE
68
+ SQLITE_DQS=0
69
+ SQLITE_DEFAULT_MEMSTATUS=0
70
+ SQLITE_TEMP_STORE=2
71
+ SQLITE_MAX_EXPR_DEPTH=0
72
+ SQLITE_STRICT_SUBTYPE=1
73
+ SQLITE_OMIT_AUTHORIZATION
74
+ SQLITE_OMIT_DECLTYPE
75
+ SQLITE_OMIT_DEPRECATED
76
+ SQLITE_OMIT_PROGRESS_CALLBACK
77
+ SQLITE_OMIT_SHARED_CACHE
78
+ SQLITE_OMIT_TCL_VARIABLE
79
+ SQLITE_OMIT_TRACE
80
+ SQLITE_USE_ALLOCA
81
+ SQLITE_UNTESTABLE
82
+ SQLITE_HAVE_ISNAN
83
+ SQLITE_HAVE_LOCALTIME_R
84
+ SQLITE_HAVE_LOCALTIME_S
85
+ )
85
86
86
- # List of absolute paths to libraries that should be bundled with the plugin
87
- set (amplify_db_common_bundled_libraries
88
- "$<TARGET_FILE:sqlite3>"
89
- PARENT_SCOPE
90
- )
87
+ # Ensure sqlite3 actually gets built
88
+ add_dependencies (${PLUGIN_NAME} sqlite3 )
89
+
90
+ # List of absolute paths to libraries that should be bundled with the plugin
91
+ set (amplify_db_common_bundled_libraries
92
+ "$<TARGET_FILE:sqlite3>"
93
+ PARENT_SCOPE
94
+ )
95
+ endif ()
0 commit comments