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