You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
198 lines
5.1 KiB
198 lines
5.1 KiB
//
|
|
//
|
|
// Build the library
|
|
//
|
|
//
|
|
|
|
package {
|
|
default_applicable_licenses: ["external_sqlite_dist_license"],
|
|
}
|
|
|
|
// Added automatically by a large-scale-change that took the approach of
|
|
// 'apply every license found to every target'. While this makes sure we respect
|
|
// every license restriction, it may not be entirely correct.
|
|
//
|
|
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
|
|
//
|
|
// Please consider splitting the single license below into multiple licenses,
|
|
// taking care not to lose any license_kind information, and overriding the
|
|
// default license using the 'licenses: [...]' property on targets as needed.
|
|
//
|
|
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
|
|
// to attach the license to, and including a comment whether the files may be
|
|
// used in the current project.
|
|
// See: http://go/android-license-faq
|
|
license {
|
|
name: "external_sqlite_dist_license",
|
|
visibility: [":__subpackages__"],
|
|
license_kinds: [
|
|
"legacy_permissive",
|
|
"legacy_unencumbered",
|
|
],
|
|
license_text: [
|
|
"NOTICE",
|
|
],
|
|
}
|
|
|
|
cc_defaults {
|
|
name: "sqlite-minimal-defaults",
|
|
host_supported: true,
|
|
|
|
// static analysis is too slow on these huge files.
|
|
tidy_checks: [
|
|
"-clang-analyzer-*",
|
|
],
|
|
|
|
// NOTE the following flags,
|
|
// SQLITE_TEMP_STORE=3 causes all TEMP files to go into RAM. and thats the behavior we want
|
|
// SQLITE_ENABLE_FTS3 enables usage of FTS3 - NOT FTS1 or 2.
|
|
// SQLITE_DEFAULT_AUTOVACUUM=1 causes the databases to be subject to auto-vacuum
|
|
cflags: [
|
|
"-DNDEBUG=1",
|
|
"-DHAVE_USLEEP=1",
|
|
"-DSQLITE_HAVE_ISNAN",
|
|
"-DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576",
|
|
"-DSQLITE_THREADSAFE=2",
|
|
"-DSQLITE_TEMP_STORE=3",
|
|
"-DSQLITE_POWERSAFE_OVERWRITE=1",
|
|
"-DSQLITE_DEFAULT_FILE_FORMAT=4",
|
|
"-DSQLITE_DEFAULT_AUTOVACUUM=1",
|
|
"-DSQLITE_ENABLE_MEMORY_MANAGEMENT=1",
|
|
"-DSQLITE_ENABLE_FTS3",
|
|
"-DSQLITE_ENABLE_FTS3_BACKWARDS",
|
|
"-DSQLITE_ENABLE_FTS4",
|
|
"-DSQLITE_OMIT_BUILTIN_TEST",
|
|
"-DSQLITE_OMIT_COMPILEOPTION_DIAGS",
|
|
"-DSQLITE_OMIT_LOAD_EXTENSION",
|
|
"-DSQLITE_DEFAULT_FILE_PERMISSIONS=0600",
|
|
"-DSQLITE_SECURE_DELETE",
|
|
"-DSQLITE_ENABLE_BATCH_ATOMIC_WRITE",
|
|
"-DBIONIC_IOCTL_NO_SIGNEDNESS_OVERLOAD",
|
|
"-DSQLITE_DEFAULT_LEGACY_ALTER_TABLE",
|
|
"-Wno-unused-parameter",
|
|
"-Werror",
|
|
|
|
// Default value causes sqlite3_open_v2 to return error if DB is missing.
|
|
"-ftrivial-auto-var-init=pattern",
|
|
],
|
|
|
|
target: {
|
|
linux_glibc: {
|
|
cflags: ["-DHAVE_POSIX_FALLOCATE=1"],
|
|
},
|
|
},
|
|
}
|
|
|
|
cc_defaults {
|
|
name: "sqlite-defaults",
|
|
defaults: ["sqlite-minimal-defaults"],
|
|
target: {
|
|
android: {
|
|
cflags: [
|
|
"-DUSE_PREAD64",
|
|
"-Dfdatasync=fdatasync",
|
|
"-DHAVE_MALLOC_H=1",
|
|
"-DHAVE_MALLOC_USABLE_SIZE",
|
|
"-DSQLITE_ENABLE_DBSTAT_VTAB",
|
|
],
|
|
},
|
|
},
|
|
}
|
|
|
|
cc_library {
|
|
name: "libsqlite",
|
|
defaults: ["sqlite-defaults"],
|
|
vendor_available: true,
|
|
native_bridge_supported: true,
|
|
vndk: {
|
|
enabled: true,
|
|
},
|
|
|
|
srcs: ["sqlite3.c"],
|
|
|
|
target: {
|
|
android: {
|
|
shared_libs: [
|
|
"libdl",
|
|
"liblog",
|
|
"libandroidicu",
|
|
],
|
|
cflags: ["-DSQLITE_ENABLE_ICU"],
|
|
|
|
// include android specific methods
|
|
whole_static_libs: ["libsqlite3_android"],
|
|
},
|
|
host: {
|
|
static_libs: [
|
|
"liblog",
|
|
],
|
|
},
|
|
not_windows: {
|
|
shared_libs: [
|
|
"libicui18n",
|
|
"libicuuc",
|
|
],
|
|
|
|
// include android specific methods
|
|
whole_static_libs: ["libsqlite3_android"],
|
|
},
|
|
windows: {
|
|
enabled: true,
|
|
},
|
|
vendor: {
|
|
cflags: ["-USQLITE_ENABLE_ICU"],
|
|
exclude_shared_libs: ["libandroidicu"],
|
|
exclude_static_libs: ["libsqlite3_android"],
|
|
},
|
|
},
|
|
|
|
export_include_dirs: ["."],
|
|
}
|
|
|
|
//
|
|
//
|
|
// Build the device command line tool sqlite3
|
|
//
|
|
//
|
|
|
|
cc_binary {
|
|
name: "sqlite3",
|
|
defaults: ["sqlite-defaults"],
|
|
|
|
srcs: ["shell.c"],
|
|
|
|
target: {
|
|
android: {
|
|
shared_libs: [
|
|
"libsqlite",
|
|
"libandroidicu",
|
|
"liblog",
|
|
"libutils",
|
|
],
|
|
},
|
|
host: {
|
|
cflags: ["-DNO_ANDROID_FUNCS=1"],
|
|
static_libs: [
|
|
"libsqlite",
|
|
// sqlite3MemsysAlarm uses LOG()
|
|
"liblog",
|
|
],
|
|
},
|
|
|
|
windows: {
|
|
enabled: true,
|
|
},
|
|
},
|
|
}
|
|
|
|
// Build a minimal version of sqlite3 without any android specific
|
|
// features against the NDK. This is used by libcore's JDBC related
|
|
// unit tests.
|
|
cc_library_static {
|
|
name: "libsqlite_static_minimal",
|
|
defaults: ["sqlite-minimal-defaults"],
|
|
srcs: ["sqlite3.c"],
|
|
sdk_version: "23",
|
|
export_include_dirs: ["."],
|
|
}
|