Fix crash on app list start page contents not existing.
[chromium-blink-merge.git] / third_party / sqlite / BUILD.gn
blob62efc0a2a8479b28286d2fff5b4697570a872d00
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 config("sqlite_config") {
6   include_dirs = [ "." ]
9 source_set("sqlite") {
10   sources = [
11     "amalgamation/sqlite3.h",
12     "amalgamation/sqlite3.c",
14     # fts2.c currently has a lot of conflicts when added to
15     # the amalgamation.  It is probably not worth fixing that.
16     "src/ext/fts2/fts2.c",
17     "src/ext/fts2/fts2.h",
18     "src/ext/fts2/fts2_hash.c",
19     "src/ext/fts2/fts2_hash.h",
20     "src/ext/fts2/fts2_icu.c",
21     "src/ext/fts2/fts2_porter.c",
22     "src/ext/fts2/fts2_tokenizer.c",
23     "src/ext/fts2/fts2_tokenizer.h",
24     "src/ext/fts2/fts2_tokenizer1.c",
25   ]
27   cflags = []
28   defines = [
29     "SQLITE_CORE",
30     "SQLITE_ENABLE_BROKEN_FTS2",
31     "SQLITE_ENABLE_FTS2",
32     "SQLITE_ENABLE_FTS3",
33     "SQLITE_DISABLE_FTS3_UNICODE",
34     "SQLITE_DISABLE_FTS4_DEFERRED",
35     "SQLITE_ENABLE_ICU",
36     "SQLITE_ENABLE_MEMORY_MANAGEMENT",
37     "SQLITE_SECURE_DELETE",
38     "SQLITE_SEPARATE_CACHE_POOLS",
39     "THREADSAFE",
40     "_HAS_EXCEPTIONS=0",
41   ]
42   if (is_chromeos) {
43     defines += [
44       # Despite obvious warnings about not using this flag in deployment, we
45       # are turning off sync in ChromeOS and relying on the underlying
46       # journaling filesystem to do error recovery properly. It's much faster.
47       "SQLITE_NO_SYNC",
48     ]
49   }
50   if (is_posix) {
51     defines += [
52       # Allow xSleep() call on Unix to use usleep() rather than sleep(), so it
53       # will have microsecond precision.  Should only affect contended databases
54       # via the busy callback.  Browser profile databases are mostly exclusive,
55       # but renderer databases may allow for contention.
56       "HAVE_USLEEP=1",
57     ]
58   }
60   include_dirs = [
61     "amalgamation",
62     "src/src",  # Needed for fts2 to build.
63   ]
65   configs -= [ "//build/config/compiler:chromium_code" ]
66   configs += [ "//build/config/compiler:no_chromium_code" ]
68   if (is_linux) {
69     cflags += [
70       # SQLite doesn"t believe in compiler warnings,
71       # preferring testing.
72       #   http://www.sqlite.org/faq.html#q17
73       "-Wno-int-to-pointer-cast",
74       "-Wno-pointer-to-int-cast",
75     ]
76     libs = [ "dl" ]
77   } else if (is_mac || is_ios) {
78     libs = [ "CoreFoundation.framework" ]
79   } else if (is_android) {
80     defines += [
81       "SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576",
82       "SQLITE_DEFAULT_AUTOVACUUM=1",
83       "SQLITE_TEMP_STORE=3",
84       "SQLITE_ENABLE_FTS3_BACKWARDS",
85       "DSQLITE_DEFAULT_FILE_FORMAT=4",
86     ]
87   }
89   public_configs = [ ":sqlite_config" ]
91   deps = [
92     "//third_party/icu",
93   ]
96 if (is_linux) {
97   executable("sqlite_shell") {
98     sources = [
99       "src/src/shell.c",
100       "src/src/shell_icu_linux.c",
102       # Include a dummy c++ file to force linking of libstdc++.
103       "build_as_cpp.cc",
104     ]
106     deps = [
107       ":sqlite",
108       "//third_party/icu",
109     ]
110   }
113 if (is_ios) {
114   source_set("sqlite_regexp") {
115     sources = [
116       "src/ext/icu/icu.c",
117     ]
118     deps = [
119       "//third_party/icu",
120     ]
121   }