| Index: third_party/sqlite/BUILD.gn
|
| diff --git a/third_party/sqlite/BUILD.gn b/third_party/sqlite/BUILD.gn
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..602a84f48eb9d620b7d133213469c8e8900714e0
|
| --- /dev/null
|
| +++ b/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",
|
| + ]
|
| + }
|
| +
|
| + public_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" ]
|
| + }
|
| +}
|
|
|