Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 14 additions & 12 deletions packages/react-native-nitro-sqlite/RNNitroSQLite.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ require "json"

package = JSON.parse(File.read(File.join(__dir__, "package.json")))
folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1'
log_message = lambda do |message|
puts "\e[34m#{message}\e[0m"
end

# TODO: Should be customizable in package.json.
# Used to create comparable benchmark results
Expand Down Expand Up @@ -30,6 +33,16 @@ Pod::Spec.new do |s|
"cpp/**/*.{h,hpp,c,cpp}"
]

optimizedCflags = '$(inherited) -DSQLITE_DQS=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS=1 -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_OMIT_DEPRECATED=1 -DSQLITE_OMIT_PROGRESS_CALLBACK=1 -DSQLITE_OMIT_SHARED_CACHE=1 -DSQLITE_USE_ALLOCA=1'

if performance_mode == 1
log_message.call("Thread unsafe (1) performance mode enabled. Use only transactions! 🚀🚀")
other_cflags = optimizedCflags + ' -DSQLITE_THREADSAFE=0 '
elsif performance_mode == 2
log_message.call("Thread safe (2) performance mode enabled 🚀")
other_cflags = optimizedCflags + ' -DSQLITE_THREADSAFE=1 '
end

s.pod_target_xcconfig = {
:GCC_PREPROCESSOR_DEFINITIONS => "HAVE_FULLFSYNC=1",
:WARNING_CFLAGS => "-Wno-shorten-64-to-32 -Wno-comma -Wno-unreachable-code -Wno-conditional-uninitialized -Wno-deprecated-declarations",
Expand All @@ -39,25 +52,14 @@ Pod::Spec.new do |s|
"HEADER_SEARCH_PATHS" => "\"${PODS_ROOT}/RCT-Folly\"" + (nitro_sqlite_vec ? " \"#{nitro_sqlite_vec_cpp}\"" : ""),
"GCC_PREPROCESSOR_DEFINITIONS" => "$(inherited) FOLLY_NO_CONFIG FOLLY_CFG_NO_COROUTINES" + (nitro_sqlite_vec ? " NITRO_SQLITE_VEC=1" : ""),
"OTHER_CPLUSPLUSFLAGS" => folly_compiler_flags,
"OTHER_CFLAGS" => other_cflags,
}

load 'nitrogen/generated/ios/RNNitroSQLite+autolinking.rb'
add_nitrogen_files(s)

install_modules_dependencies(s)

optimizedCflags = '$(inherited) -DSQLITE_DQS=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS=1 -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_OMIT_DEPRECATED=1 -DSQLITE_OMIT_PROGRESS_CALLBACK=1 -DSQLITE_OMIT_SHARED_CACHE=1 -DSQLITE_USE_ALLOCA=1'

if performance_mode == '1' then
log_message.call("Thread unsafe (1) performance mode enabled. Use only transactions! 🚀🚀")
xcconfig[:OTHER_CFLAGS] = optimizedCflags + ' -DSQLITE_THREADSAFE=0 '
end

if performance_mode == '2' then
log_message.call("Thread safe (2) performance mode enabled 🚀")
xcconfig[:OTHER_CFLAGS] = optimizedCflags + ' -DSQLITE_THREADSAFE=1 '
end

if ENV['NITRO_SQLITE_USE_PHONE_VERSION'] == '1' then
s.exclude_files = "cpp/sqlite/sqlite3.c", "cpp/sqlite/sqlite3.h"
s.library = "sqlite3"
Expand Down
Loading