Chromium Code Reviews| Index: runtime/bin/net/sqlite.gyp |
| diff --git a/runtime/bin/net/sqlite.gyp b/runtime/bin/net/sqlite.gyp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..65d521e045b5e477865ba3d6999732cacecc208f |
| --- /dev/null |
| +++ b/runtime/bin/net/sqlite.gyp |
| @@ -0,0 +1,190 @@ |
| +# Copyright (c) 2012 The Chromium Authors. All rights reserved. |
|
Mads Ager (google)
2012/10/31 09:01:01
Same comment here. Let's make it clear where this
|
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| + |
| +{ |
| + 'includes': [ |
| + '../../tools/gyp/runtime-configurations.gypi', |
| + '../../tools/gyp/third_party_configurations.gypi', |
| + ], |
| + 'variables': { |
| + 'sqlite_directory': '../../../third_party/sqlite', |
| + 'use_system_sqlite%': 0, |
| + 'required_sqlite_version': '3.6.1', |
| + }, |
| + 'target_defaults': { |
| + 'defines': [ |
| + 'SQLITE_CORE', |
| + 'SQLITE_ENABLE_BROKEN_FTS2', |
| + 'SQLITE_ENABLE_FTS2', |
| + 'SQLITE_ENABLE_FTS3', |
| +# 'SQLITE_ENABLE_ICU', |
| + 'SQLITE_ENABLE_MEMORY_MANAGEMENT', |
| + 'SQLITE_SECURE_DELETE', |
| + 'THREADSAFE', |
| + '_HAS_EXCEPTIONS=0', |
| + ], |
| + }, |
| + 'targets': [ |
| + { |
| + 'target_name': 'sqlite', |
| + 'conditions': [ |
| + [ 'chromeos==1' , { |
| + 'defines': [ |
| + # Despite obvious warnings about not using this flag |
| + # in deployment, we are turning off sync in ChromeOS |
| + # and relying on the underlying journaling filesystem |
| + # to do error recovery properly. It's much faster. |
| + 'SQLITE_NO_SYNC', |
| + ], |
| + }, |
| + ], |
| + ['use_system_sqlite', { |
| + 'type': 'none', |
| + 'direct_dependent_settings': { |
| + 'defines': [ |
| + 'USE_SYSTEM_SQLITE', |
| + ], |
| + }, |
| + |
| + 'conditions': [ |
| + ['OS == "ios"', { |
| + 'link_settings': { |
| + 'libraries': [ |
| + '$(SDKROOT)/usr/lib/libsqlite3.dylib', |
| + ], |
| + }, |
| + }], |
| + ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', { |
| + 'direct_dependent_settings': { |
| + 'cflags': [ |
| + # This next command produces no output but it it will fail |
| + # (and cause GYP to fail) if we don't have a recent enough |
| + # version of sqlite. |
| + '<!@(pkg-config --atleast-version=<(required_sqlite_version) sqlite3)', |
| + |
| + '<!@(pkg-config --cflags sqlite3)', |
| + ], |
| + }, |
| + 'link_settings': { |
| + 'ldflags': [ |
| + '<!@(pkg-config --libs-only-L --libs-only-other sqlite3)', |
| + ], |
| + 'libraries': [ |
| + '<!@(pkg-config --libs-only-l sqlite3)', |
| + ], |
| + }, |
| + }], |
| + ], |
| + }, { # !use_system_sqlite |
| + 'product_name': 'sqlite3', |
| + 'type': 'static_library', |
| + 'sources': [ |
| + '<(sqlite_directory)/amalgamation/sqlite3.h', |
| + '<(sqlite_directory)/amalgamation/sqlite3.c', |
| + # fts2.c currently has a lot of conflicts when added to |
| + # the amalgamation. It is probably not worth fixing that. |
| + '<(sqlite_directory)/src/ext/fts2/fts2.c', |
| + '<(sqlite_directory)/src/ext/fts2/fts2.h', |
| + '<(sqlite_directory)/src/ext/fts2/fts2_hash.c', |
| + '<(sqlite_directory)/src/ext/fts2/fts2_hash.h', |
| + '<(sqlite_directory)/src/ext/fts2/fts2_icu.c', |
| + '<(sqlite_directory)/src/ext/fts2/fts2_porter.c', |
| + '<(sqlite_directory)/src/ext/fts2/fts2_tokenizer.c', |
| + '<(sqlite_directory)/src/ext/fts2/fts2_tokenizer.h', |
| + '<(sqlite_directory)/src/ext/fts2/fts2_tokenizer1.c', |
| + ], |
| + |
| + # TODO(shess): Previously fts1 and rtree files were |
| + # explicitly excluded from the build. Make sure they are |
| + # logically still excluded. |
| + |
| + # TODO(shess): Should all of the sources be listed and then |
| + # excluded? For editing purposes? |
| + |
| + 'include_dirs': [ |
| + '<(sqlite_directory)/amalgamation', |
| + # Needed for fts2 to build. |
| + '<(sqlite_directory)/src/src', |
| + ], |
| + 'dependencies': [ |
| +# '../icu/icu.gyp:icui18n', |
| +# '../icu/icu.gyp:icuuc', |
| + ], |
| + 'direct_dependent_settings': { |
| + 'include_dirs': [ |
| + '<(sqlite_directory)/.', |
| + '<(sqlite_directory)/../..', |
| + ], |
| + }, |
| + 'msvs_disabled_warnings': [ |
| + 4018, 4244, |
| + ], |
| + 'conditions': [ |
| + ['OS=="linux"', { |
| + 'link_settings': { |
| + 'libraries': [ |
| + '-ldl', |
| + ], |
| + }, |
| + }], |
| + ['OS == "android"', { |
| + 'defines': [ |
| + 'HAVE_USLEEP=1', |
| + 'SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576', |
| + 'SQLITE_DEFAULT_AUTOVACUUM=1', |
| + 'SQLITE_TEMP_STORE=3', |
| + 'SQLITE_ENABLE_FTS3_BACKWARDS', |
| + 'DSQLITE_DEFAULT_FILE_FORMAT=4', |
| + ], |
| + }], |
| + ['os_posix == 1 and OS != "mac" and OS != "android"', { |
| + 'cflags': [ |
| + # SQLite doesn't believe in compiler warnings, |
| + # preferring testing. |
| + # http://www.sqlite.org/faq.html#q17 |
| + '-Wno-int-to-pointer-cast', |
| + '-Wno-pointer-to-int-cast', |
| + ], |
| + }], |
| + ['clang==1', { |
| + 'xcode_settings': { |
| + 'WARNING_CFLAGS': [ |
| + # sqlite does `if (*a++ && *b++);` in a non-buggy way. |
| + '-Wno-empty-body', |
| + # sqlite has some `unsigned < 0` checks. |
| + '-Wno-tautological-compare', |
| + ], |
| + }, |
| + 'cflags': [ |
| + '-Wno-empty-body', |
| + '-Wno-tautological-compare', |
| + ], |
| + }], |
| + ], |
| + }], |
| + ], |
| + }, |
| + ], |
| + 'conditions': [ |
| + ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android" and not use_system_sqlite', { |
| + 'targets': [ |
| + { |
| + 'target_name': 'sqlite_shell', |
| + 'type': 'executable', |
| + 'dependencies': [ |
| +# '../icu/icu.gyp:icuuc', |
| + 'sqlite', |
| + ], |
| + 'sources': [ |
| + '<(sqlite_directory)/src/src/shell.c', |
| + '<(sqlite_directory)/src/src/shell_icu_linux.c', |
| + ], |
| + 'link_settings': { |
| + 'link_languages': ['c++'], |
| + }, |
| + }, |
| + ], |
| + },] |
| + ], |
| +} |