Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Side by Side Diff: third_party/sqlite/sqlite.gyp

Issue 2332843004: Remove GYP files. (Closed)
Patch Set: Merge Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright (c) 2012 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.
4
5 {
6 'variables': {
7 'use_system_sqlite%': 0,
8 'required_sqlite_version': '3.6.1',
9 },
10 'target_defaults': {
11 'defines': [
12 'SQLITE_ENABLE_FTS3',
13 # New unicode61 tokenizer with built-in tables.
14 'SQLITE_DISABLE_FTS3_UNICODE',
15 # Chromium currently does not enable fts4, disable extra code.
16 'SQLITE_DISABLE_FTS4_DEFERRED',
17 'SQLITE_ENABLE_ICU',
18 'SQLITE_ENABLE_MEMORY_MANAGEMENT',
19 'SQLITE_SECURE_DELETE',
20 # Custom flag to tweak pcache pools.
21 # TODO(shess): This shouldn't use faux-SQLite naming.
22 'SQLITE_SEPARATE_CACHE_POOLS',
23 # TODO(shess): SQLite adds mutexes to protect structures which cross
24 # threads. In theory Chromium should be able to turn this off for a
25 # slight speed boost.
26 'THREADSAFE',
27 # SQLite can spawn threads to sort in parallel if configured
28 # appropriately. Chromium doesn't configure SQLite for that, and would
29 # prefer to control distribution to worker threads.
30 'SQLITE_MAX_WORKER_THREADS=0',
31 # Allow 256MB mmap footprint per connection. Should not be too open-ended
32 # as that could cause memory fragmentation. 50MB encompasses the 99th
33 # percentile of Chrome databases in the wild.
34 # TODO(shess): A 64-bit-specific value could be 1G or more.
35 # TODO(shess): Figure out if exceeding this is costly.
36 'SQLITE_MAX_MMAP_SIZE=268435456',
37 # Use a read-only memory map when mmap'ed I/O is enabled to prevent memory
38 # stompers from directly corrupting the database.
39 # TODO(shess): Upstream the ability to use this define.
40 'SQLITE_MMAP_READ_ONLY=1',
41 # By default SQLite pre-allocates 100 pages of pcache data, which will not
42 # be released until the handle is closed. This is contrary to Chromium's
43 # memory-usage goals.
44 'SQLITE_DEFAULT_PCACHE_INITSZ=0',
45 # NOTE(shess): Some defines can affect the amalgamation. Those should be
46 # added to google_generate_amalgamation.sh, and the amalgamation
47 # re-generated. Usually this involves disabling features which include
48 # keywords or syntax, for instance SQLITE_OMIT_VIRTUALTABLE omits the
49 # virtual table syntax entirely. Missing an item usually results in
50 # syntax working but execution failing. Review:
51 # src/src/parse.py
52 # src/tool/mkkeywordhash.c
53 ],
54 },
55 'targets': [
56 {
57 'target_name': 'sqlite',
58 'conditions': [
59 ['use_system_sqlite', {
60 'type': 'none',
61 'direct_dependent_settings': {
62 'defines': [
63 'USE_SYSTEM_SQLITE',
64 ],
65 },
66
67 'conditions': [
68 ['OS == "ios"', {
69 'dependencies': [
70 'sqlite_recover',
71 'sqlite_regexp',
72 ],
73 'link_settings': {
74 'xcode_settings': {
75 'OTHER_LDFLAGS': [
76 '-lsqlite3',
77 ],
78 },
79 },
80 }],
81 ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"' , {
82 'direct_dependent_settings': {
83 'cflags': [
84 # This next command produces no output but it it will fail
85 # (and cause GYP to fail) if we don't have a recent enough
86 # version of sqlite.
87 '<!@(pkg-config --atleast-version=<(required_sqlite_version) s qlite3)',
88
89 '<!@(pkg-config --cflags sqlite3)',
90 ],
91 },
92 'link_settings': {
93 'ldflags': [
94 '<!@(pkg-config --libs-only-L --libs-only-other sqlite3)',
95 ],
96 'libraries': [
97 '<!@(pkg-config --libs-only-l sqlite3)',
98 ],
99 },
100 }],
101 ],
102 }, { # !use_system_sqlite
103 # "sqlite3" can cause conflicts with the system library.
104 'product_name': 'chromium_sqlite3',
105 'type': '<(component)',
106 'sources': [
107 'amalgamation/config.h',
108 'amalgamation/sqlite3.h',
109 'amalgamation/sqlite3.c',
110 'src/src/recover_varint.c',
111 'src/src/recover.c',
112 'src/src/recover.h',
113 ],
114 'variables': {
115 'clang_warning_flags': [
116 # sqlite contains a few functions that are unused, at least on
117 # Windows with Chromium's sqlite patches applied
118 # (interiorCursorEOF fts3EvalDeferredPhrase
119 # fts3EvalSelectDeferred sqlite3Fts3InitHashTable
120 # sqlite3Fts3InitTok).
121 '-Wno-unused-function',
122 ],
123 },
124 'include_dirs': [
125 'amalgamation',
126 ],
127 'dependencies': [
128 '../icu/icu.gyp:icui18n',
129 '../icu/icu.gyp:icuuc',
130 ],
131 'msvs_disabled_warnings': [
132 4244, 4267,
133 ],
134 'conditions': [
135 ['OS == "win" and component == "shared_library"', {
136 'defines': ['SQLITE_API=__declspec(dllexport)'],
137 'direct_dependent_settings': {
138 'defines': ['SQLITE_API=__declspec(dllimport)'],
139 },
140 }],
141 ['OS != "win" and component == "shared_library"', {
142 'defines': ['SQLITE_API=__attribute__((visibility("default")))'],
143 }],
144 ['os_posix == 1', {
145 'defines': [
146 # Allow xSleep() call on Unix to use usleep() rather than
147 # sleep(). Microsecond precision is better than second
148 # precision. Should only affect contended databases via the
149 # busy callback. Browser profile databases are mostly
150 # exclusive, but renderer databases may allow for contention.
151 'HAVE_USLEEP=1',
152 # Use pread/pwrite directly rather than emulating them.
153 'USE_PREAD=1',
154 ],
155 }],
156 # Pull in config.h on Linux. This allows use of preprocessor macros
157 # which are not available to the build config.
158 ['OS == "linux"', {
159 'defines': [
160 '_HAVE_SQLITE_CONFIG_H',
161 ],
162 }],
163 ['OS == "linux" or OS == "android"', {
164 'defines': [
165 # Linux provides fdatasync(), a faster equivalent of fsync().
166 'fdatasync=fdatasync',
167 ],
168 }],
169 ['OS=="linux"', {
170 'link_settings': {
171 'libraries': [
172 '-ldl',
173 ],
174 },
175 }],
176 ['OS == "mac" or OS == "ios"', {
177 'link_settings': {
178 'libraries': [
179 '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework ',
180 '$(SDKROOT)/System/Library/Frameworks/CoreServices.framework',
181 ],
182 },
183 }],
184 ['OS == "android"', {
185 'defines': [
186 'SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576',
187 'SQLITE_DEFAULT_AUTOVACUUM=1',
188 'SQLITE_TEMP_STORE=3',
189 'SQLITE_ENABLE_FTS3_BACKWARDS',
190 'SQLITE_DEFAULT_FILE_FORMAT=4',
191 ],
192 }],
193 ['os_posix == 1 and OS != "mac" and OS != "android"', {
194 'cflags': [
195 # SQLite doesn't believe in compiler warnings,
196 # preferring testing.
197 # http://www.sqlite.org/faq.html#q17
198 '-Wno-int-to-pointer-cast',
199 '-Wno-pointer-to-int-cast',
200 ],
201 }],
202 ],
203 }],
204 ],
205 'includes': [
206 # Disable LTO due to ELF section name out of range
207 # crbug.com/422251
208 '../../build/android/disable_gcc_lto.gypi',
209 ],
210 },
211 ],
212 'conditions': [
213 ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android" and not use_system_sqlite', {
214 'targets': [
215 {
216 'target_name': 'sqlite_shell',
217 'type': 'executable',
218 'dependencies': [
219 '../icu/icu.gyp:icuuc',
220 'sqlite',
221 ],
222 # So shell.c can find the correct sqlite3.h.
223 'include_dirs': [
224 'amalgamation',
225 ],
226 'sources': [
227 'src/src/shell.c',
228 'src/src/shell_icu_linux.c',
229 # Include a dummy c++ file to force linking of libstdc++.
230 'build_as_cpp.cc',
231 ],
232 },
233 ],
234 },],
235 ['OS == "ios"', {
236 'targets': [
237 {
238 # Virtual table used by sql::Recovery to recover corrupt
239 # databases, for use with USE_SYSTEM_SQLITE.
240 'target_name': 'sqlite_recover',
241 'type': 'static_library',
242 'sources': [
243 # TODO(shess): Move out of the SQLite source tree, perhaps to ext/.
244 'src/src/recover_varint.c',
245 'src/src/recover.c',
246 'src/src/recover.h',
247 ],
248 },
249 {
250 'target_name': 'sqlite_regexp',
251 'type': 'static_library',
252 'dependencies': [
253 '../icu/icu.gyp:icui18n',
254 '../icu/icu.gyp:icuuc',
255 ],
256 'defines': [
257 # Necessary to statically compile the extension.
258 'SQLITE_CORE',
259 ],
260 'sources': [
261 'src/ext/icu/icu.c',
262 ],
263 'variables': {
264 'clang_warning_flags_unset': [
265 # icu.c uses assert(!"foo") instead of assert(false && "foo")
266 '-Wstring-conversion',
267 ],
268 },
269 },
270 ],
271 }],
272 ],
273 }
OLDNEW
« no previous file with comments | « third_party/snappy/snappy.gyp ('k') | third_party/sudden_motion_sensor/sudden_motion_sensor.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698