Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / sqlite / sqlite.gyp
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_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           },
45
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)',
64
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           ],
96
97           # TODO(shess): Previously fts1 and rtree files were
98           # explicitly excluded from the build.  Make sure they are
99           # logically still excluded.
100
101           # TODO(shess): Should all of the sources be listed and then
102           # excluded?  For editing purposes?
103
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           'variables': {
123             'clang_warning_flags': [
124               # sqlite does `if (*a++ && *b++);` in a non-buggy way.
125               '-Wno-empty-body',
126               # sqlite has some `unsigned < 0` checks.
127               '-Wno-tautological-compare',
128             ],
129           },
130           'conditions': [
131             ['OS=="linux"', {
132               'link_settings': {
133                 'libraries': [
134                   '-ldl',
135                 ],
136               },
137             }],
138             ['OS == "mac" or OS == "ios"', {
139               'link_settings': {
140                 'libraries': [
141                   '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
142                 ],
143               },
144             }],
145             ['OS == "android"', {
146               'defines': [
147                 'HAVE_USLEEP=1',
148                 'SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576',
149                 'SQLITE_DEFAULT_AUTOVACUUM=1',
150                 'SQLITE_TEMP_STORE=3',
151                 'SQLITE_ENABLE_FTS3_BACKWARDS',
152                 'DSQLITE_DEFAULT_FILE_FORMAT=4',
153               ],
154             }],
155             ['os_posix == 1 and OS != "mac" and OS != "android"', {
156               'cflags': [
157                 # SQLite doesn't believe in compiler warnings,
158                 # preferring testing.
159                 #   http://www.sqlite.org/faq.html#q17
160                 '-Wno-int-to-pointer-cast',
161                 '-Wno-pointer-to-int-cast',
162               ],
163             }],
164           ],
165         }],
166       ],
167     },
168   ],
169   'conditions': [
170     ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android" and not use_system_sqlite', {
171       'targets': [
172         {
173           'target_name': 'sqlite_shell',
174           'type': 'executable',
175           'dependencies': [
176             '../icu/icu.gyp:icuuc',
177             'sqlite',
178           ],
179           'sources': [
180             'src/src/shell.c',
181             'src/src/shell_icu_linux.c',
182             # Include a dummy c++ file to force linking of libstdc++.
183             'build_as_cpp.cc',
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   ],
204 }