Fix typos in JS types
[chromium-blink-merge.git] / third_party / sqlite / BUILD.gn
blob80e1b377e8d00d1078f2d1b34bfd39df69a7822b
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.c",
12     "amalgamation/sqlite3.h",
13   ]
15   cflags = []
16   defines = [
17     "SQLITE_CORE",
18     "SQLITE_ENABLE_FTS3",
19     "SQLITE_DISABLE_FTS3_UNICODE",
20     "SQLITE_DISABLE_FTS4_DEFERRED",
21     "SQLITE_ENABLE_ICU",
22     "SQLITE_ENABLE_MEMORY_MANAGEMENT",
23     "SQLITE_SECURE_DELETE",
24     "SQLITE_SEPARATE_CACHE_POOLS",
25     "THREADSAFE",
26     "_HAS_EXCEPTIONS=0",
27   ]
28   if (is_chromeos) {
29     defines += [
30       # Despite obvious warnings about not using this flag in deployment, we
31       # are turning off sync in ChromeOS and relying on the underlying
32       # journaling filesystem to do error recovery properly. It's much faster.
33       "SQLITE_NO_SYNC",
34     ]
35   }
36   if (is_posix) {
37     defines += [
38       # Allow xSleep() call on Unix to use usleep() rather than sleep(), so it
39       # will have microsecond precision.  Should only affect contended databases
40       # via the busy callback.  Browser profile databases are mostly exclusive,
41       # but renderer databases may allow for contention.
42       "HAVE_USLEEP=1",
43     ]
44   }
46   include_dirs = [ "amalgamation" ]
48   configs -= [ "//build/config/compiler:chromium_code" ]
49   configs += [ "//build/config/compiler:no_chromium_code" ]
51   if (is_linux) {
52     cflags += [
53       # SQLite doesn"t believe in compiler warnings,
54       # preferring testing.
55       #   http://www.sqlite.org/faq.html#q17
56       "-Wno-int-to-pointer-cast",
57       "-Wno-pointer-to-int-cast",
58     ]
59     libs = [ "dl" ]
60   } else if (is_mac || is_ios) {
61     libs = [ "CoreFoundation.framework" ]
62   } else if (is_android) {
63     defines += [
64       "SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576",
65       "SQLITE_DEFAULT_AUTOVACUUM=1",
66       "SQLITE_TEMP_STORE=3",
67       "SQLITE_ENABLE_FTS3_BACKWARDS",
68       "DSQLITE_DEFAULT_FILE_FORMAT=4",
69     ]
70   }
72   public_configs = [ ":sqlite_config" ]
74   deps = [
75     "//third_party/icu",
76   ]
79 if (is_linux) {
80   executable("sqlite_shell") {
81     sources = [
82       "src/src/shell.c",
83       "src/src/shell_icu_linux.c",
85       # Include a dummy c++ file to force linking of libstdc++.
86       "build_as_cpp.cc",
87     ]
89     deps = [
90       ":sqlite",
91       "//third_party/icu",
92     ]
93   }
96 if (is_ios) {
97   source_set("sqlite_regexp") {
98     sources = [
99       "src/ext/icu/icu.c",
100     ]
101     deps = [
102       "//third_party/icu",
103     ]
104   }