1# Copyright (c) 2011 The LevelDB 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. See the AUTHORS file for names of contributors.
4
5{
6  'variables': {
7    'use_snappy%': 1,
8  },
9  'conditions': [
10    ['OS == "android" and android_webview_build == 1', {
11      'variables': {
12        # Snappy not used in Android WebView
13        # crbug.com/236780
14        'use_snappy': 0,
15      },
16    }],
17    ['OS=="android"', {
18      'targets': [{
19        'target_name': 'env_chromium_unittests_apk',
20        'type': 'none',
21        'dependencies': [
22          '<(DEPTH)/base/base.gyp:base_java',
23          'env_chromium_unittests',
24        ],
25        'variables': {
26          'test_suite_name': 'env_chromium_unittests',
27        },
28        'includes': [ '../../build/apk_test.gypi' ],
29      }],
30    }],
31  ],
32  'target_defaults': {
33    'defines': [
34      'LEVELDB_PLATFORM_CHROMIUM=1',
35    ],
36    'include_dirs': [
37      '.',
38      'src/',
39      'src/include/',
40    ],
41    'conditions': [
42      ['OS!="win"', {
43        'sources/': [ ['exclude', '_win.(h|cc)$'], ],
44      }],
45      ['use_snappy', {
46        'defines': [
47          'USE_SNAPPY=1',
48        ],
49      }],
50    ],
51  },
52  'targets': [
53    {
54      'target_name': 'leveldatabase',
55      'type': 'static_library',
56      'dependencies': [
57        '../../third_party/re2/re2.gyp:re2',
58        '../../base/base.gyp:base',
59        # base::LazyInstance is a template that pulls in dynamic_annotations so
60        # we need to explictly link in the code for dynamic_annotations.
61        '../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
62      ],
63      'conditions': [
64        ['use_snappy', {
65          'dependencies': [
66            '../../third_party/snappy/snappy.gyp:snappy',
67          ],
68        }],
69      ],
70      'direct_dependent_settings': {
71        'include_dirs': [
72          'src/include/',
73          'src/',
74          '.',
75        ],
76      },
77      # Patch posted for upstream, can be removed once that's landed and
78      # rolled into Chromium.
79      # Internal link: https://mondrian.corp.google.com/#review/29997992
80      'msvs_disabled_warnings': [
81        # Signed/unsigned comparison.
82        4018,
83
84        # TODO(jschuh): http://crbug.com/167187 size_t -> int
85        4267,
86      ],
87      'sources': [
88        # Include and then exclude so that all files show up in IDEs, even if
89        # they don't build.
90        'chromium_logger.h',
91        'env_chromium.cc',
92        'env_chromium.h',
93        'env_chromium_stdio.cc',
94        'env_chromium_stdio.h',
95        'env_chromium_win.cc',
96        'env_chromium_win.h',
97        'env_idb.h',
98        'port/port_chromium.cc',
99        'port/port_chromium.h',
100        'src/db/builder.cc',
101        'src/db/builder.h',
102        'src/db/db_impl.cc',
103        'src/db/db_impl.h',
104        'src/db/db_iter.cc',
105        'src/db/db_iter.h',
106        'src/db/filename.cc',
107        'src/db/filename.h',
108        'src/db/dbformat.cc',
109        'src/db/dbformat.h',
110        'src/db/log_format.h',
111        'src/db/log_reader.cc',
112        'src/db/log_reader.h',
113        'src/db/log_writer.cc',
114        'src/db/log_writer.h',
115        'src/db/memtable.cc',
116        'src/db/memtable.h',
117        'src/db/repair.cc',
118        'src/db/skiplist.h',
119        'src/db/snapshot.h',
120        'src/db/table_cache.cc',
121        'src/db/table_cache.h',
122        'src/db/version_edit.cc',
123        'src/db/version_edit.h',
124        'src/db/version_set.cc',
125        'src/db/version_set.h',
126        'src/db/write_batch.cc',
127        'src/db/write_batch_internal.h',
128        'src/helpers/memenv/memenv.cc',
129        'src/helpers/memenv/memenv.h',
130        'src/include/leveldb/cache.h',
131        'src/include/leveldb/comparator.h',
132        'src/include/leveldb/db.h',
133        'src/include/leveldb/env.h',
134        'src/include/leveldb/filter_policy.h',
135        'src/include/leveldb/iterator.h',
136        'src/include/leveldb/options.h',
137        'src/include/leveldb/slice.h',
138        'src/include/leveldb/status.h',
139        'src/include/leveldb/table.h',
140        'src/include/leveldb/table_builder.h',
141        'src/include/leveldb/write_batch.h',
142        'src/port/port.h',
143        'src/port/port_example.h',
144        'src/port/port_posix.cc',
145        'src/port/port_posix.h',
146        'src/table/block.cc',
147        'src/table/block.h',
148        'src/table/block_builder.cc',
149        'src/table/block_builder.h',
150        'src/table/filter_block.cc',
151        'src/table/filter_block.h',
152        'src/table/format.cc',
153        'src/table/format.h',
154        'src/table/iterator.cc',
155        'src/table/iterator_wrapper.h',
156        'src/table/merger.cc',
157        'src/table/merger.h',
158        'src/table/table.cc',
159        'src/table/table_builder.cc',
160        'src/table/two_level_iterator.cc',
161        'src/table/two_level_iterator.h',
162        'src/util/arena.cc',
163        'src/util/arena.h',
164        'src/util/bloom.cc',
165        'src/util/cache.cc',
166        'src/util/coding.cc',
167        'src/util/coding.h',
168        'src/util/comparator.cc',
169        'src/util/crc32c.cc',
170        'src/util/crc32c.h',
171        'src/util/env.cc',
172        'src/util/filter_policy.cc',
173        'src/util/hash.cc',
174        'src/util/hash.h',
175        'src/util/logging.cc',
176        'src/util/logging.h',
177        'src/util/mutexlock.h',
178        'src/util/options.cc',
179        'src/util/random.h',
180        'src/util/status.cc',
181      ],
182      'sources/': [
183        ['exclude', '_(example|posix)\\.(h|cc)$'],
184      ],
185    },
186    {
187      'target_name': 'env_chromium_unittests',
188      'type': '<(gtest_target_type)',
189      'dependencies': [
190        'leveldatabase',
191        '../../base/base.gyp:test_support_base',
192        '../../testing/gtest.gyp:gtest',
193      ],
194      'sources': [
195        'env_chromium_unittest.cc',
196      ],
197      'conditions': [
198        ['OS=="android"', {
199          'type': 'shared_library',
200          'dependencies': [
201            '../../testing/android/native_test.gyp:native_test_native_code',
202            '../../tools/android/forwarder2/forwarder.gyp:forwarder2',
203          ],
204        }],
205      ],
206    },
207    {
208      'target_name': 'leveldb_testutil',
209      'type': 'static_library',
210      'dependencies': [
211        '../../base/base.gyp:base',
212        'leveldatabase',
213      ],
214      'export_dependent_settings': [
215        # The tests use include directories from these projects.
216        '../../base/base.gyp:base',
217        'leveldatabase',
218      ],
219      'sources': [
220        'src/util/histogram.cc',
221        'src/util/histogram.h',
222        'src/util/testharness.cc',
223        'src/util/testharness.h',
224        'src/util/testutil.cc',
225        'src/util/testutil.h',
226      ],
227    },
228    {
229      'target_name': 'leveldb_arena_test',
230      'type': 'executable',
231      'dependencies': [
232        'leveldb_testutil',
233      ],
234      'sources': [
235        'src/util/arena_test.cc',
236      ],
237    },
238    {
239      'target_name': 'leveldb_bloom_test',
240      'type': 'executable',
241      'dependencies': [
242        'leveldb_testutil',
243      ],
244      'sources': [
245        'src/util/bloom_test.cc',
246      ],
247    },
248    {
249      'target_name': 'leveldb_cache_test',
250      'type': 'executable',
251      'dependencies': [
252        'leveldb_testutil',
253      ],
254      'sources': [
255        'src/util/cache_test.cc',
256      ],
257    },
258    {
259      'target_name': 'leveldb_coding_test',
260      'type': 'executable',
261      'dependencies': [
262        'leveldb_testutil',
263      ],
264      'sources': [
265        'src/util/coding_test.cc',
266      ],
267    },
268    {
269      'target_name': 'leveldb_corruption_test',
270      'type': 'executable',
271      'dependencies': [
272        'leveldb_testutil',
273      ],
274      'sources': [
275        'src/db/corruption_test.cc',
276      ],
277    },
278    {
279      'target_name': 'leveldb_crc32c_test',
280      'type': 'executable',
281      'dependencies': [
282        'leveldb_testutil',
283      ],
284      'sources': [
285        'src/util/crc32c_test.cc',
286      ],
287    },
288    {
289      'target_name': 'leveldb_db_bench',
290      'type': 'executable',
291      'dependencies': [
292        'leveldb_testutil',
293      ],
294      'sources': [
295        'src/db/db_bench.cc',
296      ],
297    },
298    {
299      'target_name': 'leveldb_db_test',
300      'type': 'executable',
301      'dependencies': [
302        'leveldb_testutil',
303      ],
304      'sources': [
305        'src/db/db_test.cc',
306      ],
307    },
308    {
309      'target_name': 'leveldb_dbformat_test',
310      'type': 'executable',
311      'dependencies': [
312        'leveldb_testutil',
313      ],
314      'sources': [
315        'src/db/dbformat_test.cc',
316      ],
317    },
318    {
319      'target_name': 'leveldb_env_test',
320      'type': 'executable',
321      'dependencies': [
322        'leveldb_testutil',
323      ],
324      'sources': [
325        'src/util/env_test.cc',
326      ],
327    },
328    {
329      'target_name': 'leveldb_filename_test',
330      'type': 'executable',
331      'dependencies': [
332        'leveldb_testutil',
333      ],
334      'sources': [
335        'src/db/filename_test.cc',
336      ],
337    },
338    {
339      'target_name': 'leveldb_filter_block_test',
340      'type': 'executable',
341      'dependencies': [
342        'leveldb_testutil',
343      ],
344      'sources': [
345        'src/table/filter_block_test.cc',
346      ],
347    },
348    {
349      'target_name': 'leveldb_log_test',
350      'type': 'executable',
351      'dependencies': [
352        'leveldb_testutil',
353      ],
354      'sources': [
355        'src/db/log_test.cc',
356      ],
357    },
358    {
359      'target_name': 'leveldb_skiplist_test',
360      'type': 'executable',
361      'dependencies': [
362        'leveldb_testutil',
363      ],
364      'sources': [
365        'src/db/skiplist_test.cc',
366      ],
367    },
368    {
369      'target_name': 'leveldb_table_test',
370      'type': 'executable',
371      'dependencies': [
372        'leveldb_testutil',
373      ],
374      'sources': [
375        'src/table/table_test.cc',
376      ],
377    },
378    {
379      'target_name': 'leveldb_version_edit_test',
380      'type': 'executable',
381      'dependencies': [
382        'leveldb_testutil',
383      ],
384      'sources': [
385        'src/db/version_edit_test.cc',
386      ],
387    },
388    {
389      'target_name': 'leveldb_write_batch_test',
390      'type': 'executable',
391      'dependencies': [
392        'leveldb_testutil',
393      ],
394      'sources': [
395        'src/db/write_batch_test.cc',
396      ],
397    },
398    {
399      'target_name': 'leveldb_main',
400      'type': 'executable',
401      'dependencies': [
402        'leveldb_testutil',
403      ],
404      'sources': [
405        'src/db/leveldb_main.cc',
406      ],
407    },
408  ],
409}
410
411# Local Variables:
412# tab-width:2
413# indent-tabs-mode:nil
414# End:
415# vim: set expandtab tabstop=2 shiftwidth=2:
416