1 # Copyright (c) 2013 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.
5 config("sqlite_config") {
11 "amalgamation/sqlite3.c",
12 "amalgamation/sqlite3.h",
18 "SQLITE_DISABLE_FTS3_UNICODE",
19 "SQLITE_DISABLE_FTS4_DEFERRED",
21 "SQLITE_ENABLE_MEMORY_MANAGEMENT",
22 "SQLITE_SECURE_DELETE",
23 "SQLITE_SEPARATE_CACHE_POOLS",
29 # Despite obvious warnings about not using this flag in deployment, we
30 # are turning off sync in ChromeOS and relying on the underlying
31 # journaling filesystem to do error recovery properly. It's much faster.
37 # Allow xSleep() call on Unix to use usleep() rather than sleep(), so it
38 # will have microsecond precision. Should only affect contended databases
39 # via the busy callback. Browser profile databases are mostly exclusive,
40 # but renderer databases may allow for contention.
44 if (is_linux || is_android) {
46 # Linux provides fdatasync(), a faster equivalent of fsync().
47 "fdatasync=fdatasync",
51 include_dirs = [ "amalgamation" ]
53 configs -= [ "//build/config/compiler:chromium_code" ]
54 configs += [ "//build/config/compiler:no_chromium_code" ]
58 # SQLite doesn"t believe in compiler warnings,
60 # http://www.sqlite.org/faq.html#q17
61 "-Wno-int-to-pointer-cast",
62 "-Wno-pointer-to-int-cast",
65 } else if (is_mac || is_ios) {
66 libs = [ "CoreFoundation.framework" ]
67 } else if (is_android) {
69 "SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576",
70 "SQLITE_DEFAULT_AUTOVACUUM=1",
71 "SQLITE_TEMP_STORE=3",
72 "SQLITE_ENABLE_FTS3_BACKWARDS",
73 "DSQLITE_DEFAULT_FILE_FORMAT=4",
77 public_configs = [ ":sqlite_config" ]
85 executable("sqlite_shell") {
88 "src/src/shell_icu_linux.c",
90 # Include a dummy c++ file to force linking of libstdc++.
102 source_set("sqlite_regexp") {
104 # Necessary to statically compile the extension.