cc: Added inline to Tile::IsReadyToDraw
[chromium-blink-merge.git] / third_party / sqlite / sqlite.gyp
blob984365342bdedcc4986abde21bd5a74a96363e36
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.
6   'variables': {
7     'use_system_sqlite%': 0,
8     'required_sqlite_version': '3.6.1',
9   },
10   'target_defaults': {
11     'defines': [
12       'SQLITE_CORE',
13       'SQLITE_ENABLE_BROKEN_FTS2',
14       'SQLITE_ENABLE_FTS2',
15       'SQLITE_ENABLE_FTS3',
16       'SQLITE_ENABLE_ICU',
17       'SQLITE_ENABLE_MEMORY_MANAGEMENT',
18       'SQLITE_SECURE_DELETE',
19       'SQLITE_SEPERATE_CACHE_POOLS',
20       'THREADSAFE',
21       '_HAS_EXCEPTIONS=0',
22     ],
23   },
24   'targets': [
25     {
26       'target_name': 'sqlite',
27       'conditions': [
28         [ 'chromeos==1' , {
29             'defines': [
30                 # Despite obvious warnings about not using this flag
31                 # in deployment, we are turning off sync in ChromeOS
32                 # and relying on the underlying journaling filesystem
33                 # to do error recovery properly.  It's much faster.
34                 'SQLITE_NO_SYNC',
35                 ],
36           },
37         ],
38         ['use_system_sqlite', {
39           'type': 'none',
40           'direct_dependent_settings': {
41             'defines': [
42               'USE_SYSTEM_SQLITE',
43             ],
44           },
46           'conditions': [
47             ['OS == "ios"', {
48               'dependencies': [
49                 'sqlite_regexp',
50               ],
51               'link_settings': {
52                 'libraries': [
53                   '$(SDKROOT)/usr/lib/libsqlite3.dylib',
54                 ],
55               },
56             }],
57             ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
58               'direct_dependent_settings': {
59                 'cflags': [
60                   # This next command produces no output but it it will fail
61                   # (and cause GYP to fail) if we don't have a recent enough
62                   # version of sqlite.
63                   '<!@(pkg-config --atleast-version=<(required_sqlite_version) sqlite3)',
65                   '<!@(pkg-config --cflags sqlite3)',
66                 ],
67               },
68               'link_settings': {
69                 'ldflags': [
70                   '<!@(pkg-config --libs-only-L --libs-only-other sqlite3)',
71                 ],
72                 'libraries': [
73                   '<!@(pkg-config --libs-only-l sqlite3)',
74                 ],
75               },
76             }],
77           ],
78         }, { # !use_system_sqlite
79           'product_name': 'sqlite3',
80           'type': 'static_library',
81           'sources': [
82             'amalgamation/sqlite3.h',
83             'amalgamation/sqlite3.c',
84             # fts2.c currently has a lot of conflicts when added to
85             # the amalgamation.  It is probably not worth fixing that.
86             'src/ext/fts2/fts2.c',
87             'src/ext/fts2/fts2.h',
88             'src/ext/fts2/fts2_hash.c',
89             'src/ext/fts2/fts2_hash.h',
90             'src/ext/fts2/fts2_icu.c',
91             'src/ext/fts2/fts2_porter.c',
92             'src/ext/fts2/fts2_tokenizer.c',
93             'src/ext/fts2/fts2_tokenizer.h',
94             'src/ext/fts2/fts2_tokenizer1.c',
95           ],
97           # TODO(shess): Previously fts1 and rtree files were
98           # explicitly excluded from the build.  Make sure they are
99           # logically still excluded.
101           # TODO(shess): Should all of the sources be listed and then
102           # excluded?  For editing purposes?
104           'include_dirs': [
105             'amalgamation',
106             # Needed for fts2 to build.
107             'src/src',
108           ],
109           'dependencies': [
110             '../icu/icu.gyp:icui18n',
111             '../icu/icu.gyp:icuuc',
112           ],
113           'direct_dependent_settings': {
114             'include_dirs': [
115               '.',
116               '../..',
117             ],
118           },
119           'msvs_disabled_warnings': [
120             4018, 4244, 4267,
121           ],
122           'conditions': [
123             ['OS=="linux"', {
124               'link_settings': {
125                 'libraries': [
126                   '-ldl',
127                 ],
128               },
129             }],
130             ['OS == "android"', {
131               'defines': [
132                 'HAVE_USLEEP=1',
133                 'SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576',
134                 'SQLITE_DEFAULT_AUTOVACUUM=1',
135                 'SQLITE_TEMP_STORE=3',
136                 'SQLITE_ENABLE_FTS3_BACKWARDS',
137                 'DSQLITE_DEFAULT_FILE_FORMAT=4',
138               ],
139             }],
140             ['os_posix == 1 and OS != "mac" and OS != "android"', {
141               'cflags': [
142                 # SQLite doesn't believe in compiler warnings,
143                 # preferring testing.
144                 #   http://www.sqlite.org/faq.html#q17
145                 '-Wno-int-to-pointer-cast',
146                 '-Wno-pointer-to-int-cast',
147               ],
148             }],
149             ['clang==1', {
150               'xcode_settings': {
151                 'WARNING_CFLAGS': [
152                   # sqlite does `if (*a++ && *b++);` in a non-buggy way.
153                   '-Wno-empty-body',
154                   # sqlite has some `unsigned < 0` checks.
155                   '-Wno-tautological-compare',
156                 ],
157               },
158               'cflags': [
159                 '-Wno-empty-body',
160                 '-Wno-tautological-compare',
161               ],
162             }],
163           ],
164         }],
165       ],
166     },
167   ],
168   'conditions': [
169     ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android" and not use_system_sqlite', {
170       'targets': [
171         {
172           'target_name': 'sqlite_shell',
173           'type': 'executable',
174           'dependencies': [
175             '../icu/icu.gyp:icuuc',
176             'sqlite',
177           ],
178           'sources': [
179             'src/src/shell.c',
180             'src/src/shell_icu_linux.c',
181           ],
182           'link_settings': {
183             'link_languages': ['c++'],
184           },
185         },
186       ],
187     },],
188     ['OS == "ios"', {
189       'targets': [
190         {
191           'target_name': 'sqlite_regexp',
192           'type': 'static_library',
193           'dependencies': [
194             '../icu/icu.gyp:icui18n',
195             '../icu/icu.gyp:icuuc',
196           ],
197           'sources': [
198             'src/ext/icu/icu.c',
199           ],
200         },
201       ],
202     }],
203   ],