summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/sqlite/BUILD.gn
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/sqlite/BUILD.gn')
-rw-r--r--chromium/third_party/sqlite/BUILD.gn117
1 files changed, 117 insertions, 0 deletions
diff --git a/chromium/third_party/sqlite/BUILD.gn b/chromium/third_party/sqlite/BUILD.gn
new file mode 100644
index 00000000000..b78bd11a954
--- /dev/null
+++ b/chromium/third_party/sqlite/BUILD.gn
@@ -0,0 +1,117 @@
+# Copyright (c) 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+config("sqlite_config") {
+ include_dirs = [ "." ]
+}
+
+source_set("sqlite") {
+ sources = [
+ "amalgamation/sqlite3.h",
+ "amalgamation/sqlite3.c",
+ # fts2.c currently has a lot of conflicts when added to
+ # the amalgamation. It is probably not worth fixing that.
+ "src/ext/fts2/fts2.c",
+ "src/ext/fts2/fts2.h",
+ "src/ext/fts2/fts2_hash.c",
+ "src/ext/fts2/fts2_hash.h",
+ "src/ext/fts2/fts2_icu.c",
+ "src/ext/fts2/fts2_porter.c",
+ "src/ext/fts2/fts2_tokenizer.c",
+ "src/ext/fts2/fts2_tokenizer.h",
+ "src/ext/fts2/fts2_tokenizer1.c",
+ ]
+
+ cflags = []
+ defines = [
+ "SQLITE_CORE",
+ "SQLITE_ENABLE_BROKEN_FTS2",
+ "SQLITE_ENABLE_FTS2",
+ "SQLITE_ENABLE_FTS3",
+ "SQLITE_ENABLE_ICU",
+ "SQLITE_ENABLE_MEMORY_MANAGEMENT",
+ "SQLITE_SECURE_DELETE",
+ "SQLITE_SEPARATE_CACHE_POOLS",
+ "THREADSAFE",
+ "_HAS_EXCEPTIONS=0",
+ ]
+ if (is_chromeos) {
+ defines += [
+ # Despite obvious warnings about not using this flag in deployment, we
+ # are turning off sync in ChromeOS and relying on the underlying
+ # journaling filesystem to do error recovery properly. It's much faster.
+ "SQLITE_NO_SYNC",
+ ]
+ }
+
+ include_dirs = [
+ "amalgamation",
+ "src/src", # Needed for fts2 to build.
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [ "//build/config/compiler:no_chromium_code" ]
+
+ if (is_win) {
+ cflags += [ "/wd4267" ] # Conversion from size_t to "type".
+ } else if (is_linux) {
+ cflags += [
+ # SQLite doesn"t believe in compiler warnings,
+ # preferring testing.
+ # http://www.sqlite.org/faq.html#q17
+ "-Wno-int-to-pointer-cast",
+ "-Wno-pointer-to-int-cast",
+ ]
+ libs = [ "dl" ]
+ } else if (is_mac || is_ios) {
+ libs = [ "CoreFoundation.framework" ]
+ } else if (is_android) {
+ defines += [
+ "HAVE_USLEEP=1",
+ "SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576",
+ "SQLITE_DEFAULT_AUTOVACUUM=1",
+ "SQLITE_TEMP_STORE=3",
+ "SQLITE_ENABLE_FTS3_BACKWARDS",
+ "DSQLITE_DEFAULT_FILE_FORMAT=4",
+ ]
+ }
+
+ if (is_clang) {
+ cflags += [
+ # sqlite does `if (*a++ && *b++);` in a non-buggy way.
+ "-Wno-empty-body",
+ # sqlite has some `unsigned < 0` checks.
+ "-Wno-tautological-compare",
+ ]
+ }
+
+ direct_dependent_configs = [ ":sqlite_config" ]
+
+ deps = [
+ "//third_party/icu",
+ ]
+}
+
+if (is_linux) {
+ executable("sqlite_shell") {
+ sources = [
+ "src/src/shell.c",
+ "src/src/shell_icu_linux.c",
+ # Include a dummy c++ file to force linking of libstdc++.
+ "build_as_cpp.cc",
+ ]
+
+ deps = [
+ ":sqlite",
+ "//third_party/icu",
+ ]
+ }
+}
+
+if (is_ios) {
+ source_set("sqlite_regexp") {
+ sources = [ "src/ext/icu/icu.c" ]
+ deps = [ "//third_party/icu" ]
+ }
+}