mDns registration of GCD devices from chrome://devices page.
[chromium-blink-merge.git] / third_party / sqlite / sqlite.gyp
blob8e897ad1184137f7aa7fc6b74c5032e6bc90be92
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_SEPARATE_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 == "mac" or OS == "ios"', {
131               'link_settings': {
132                 'libraries': [
133                   '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
134                 ],
135               },
136             }],
137             ['OS == "android"', {
138               'defines': [
139                 'HAVE_USLEEP=1',
140                 'SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576',
141                 'SQLITE_DEFAULT_AUTOVACUUM=1',
142                 'SQLITE_TEMP_STORE=3',
143                 'SQLITE_ENABLE_FTS3_BACKWARDS',
144                 'DSQLITE_DEFAULT_FILE_FORMAT=4',
145               ],
146             }],
147             ['os_posix == 1 and OS != "mac" and OS != "android"', {
148               'cflags': [
149                 # SQLite doesn't believe in compiler warnings,
150                 # preferring testing.
151                 #   http://www.sqlite.org/faq.html#q17
152                 '-Wno-int-to-pointer-cast',
153                 '-Wno-pointer-to-int-cast',
154               ],
155             }],
156             ['clang==1', {
157               'xcode_settings': {
158                 'WARNING_CFLAGS': [
159                   # sqlite does `if (*a++ && *b++);` in a non-buggy way.
160                   '-Wno-empty-body',
161                   # sqlite has some `unsigned < 0` checks.
162                   '-Wno-tautological-compare',
163                 ],
164               },
165               'cflags': [
166                 '-Wno-empty-body',
167                 '-Wno-tautological-compare',
168               ],
169             }],
170           ],
171         }],
172       ],
173     },
174   ],
175   'conditions': [
176     ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android" and not use_system_sqlite', {
177       'targets': [
178         {
179           'target_name': 'sqlite_shell',
180           'type': 'executable',
181           'dependencies': [
182             '../icu/icu.gyp:icuuc',
183             'sqlite',
184           ],
185           'sources': [
186             'src/src/shell.c',
187             'src/src/shell_icu_linux.c',
188             # Include a dummy c++ file to force linking of libstdc++.
189             'build_as_cpp.cc',
190           ],
191         },
192       ],
193     },],
194     ['OS == "ios"', {
195       'targets': [
196         {
197           'target_name': 'sqlite_regexp',
198           'type': 'static_library',
199           'dependencies': [
200             '../icu/icu.gyp:icui18n',
201             '../icu/icu.gyp:icuuc',
202           ],
203           'sources': [
204             'src/ext/icu/icu.c',
205           ],
206         },
207       ],
208     }],
209   ],