summaryrefslogtreecommitdiffstats
path: root/storage/moz.build
diff options
context:
space:
mode:
Diffstat (limited to 'storage/moz.build')
-rw-r--r--storage/moz.build121
1 files changed, 121 insertions, 0 deletions
diff --git a/storage/moz.build b/storage/moz.build
new file mode 100644
index 000000000..8863105c9
--- /dev/null
+++ b/storage/moz.build
@@ -0,0 +1,121 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+DIRS += ['build']
+
+TEST_DIRS += ['test']
+
+XPIDL_SOURCES += [
+ 'mozIStorageAggregateFunction.idl',
+ 'mozIStorageAsyncConnection.idl',
+ 'mozIStorageAsyncStatement.idl',
+ 'mozIStorageBaseStatement.idl',
+ 'mozIStorageBindingParams.idl',
+ 'mozIStorageBindingParamsArray.idl',
+ 'mozIStorageCompletionCallback.idl',
+ 'mozIStorageConnection.idl',
+ 'mozIStorageError.idl',
+ 'mozIStorageFunction.idl',
+ 'mozIStoragePendingStatement.idl',
+ 'mozIStorageProgressHandler.idl',
+ 'mozIStorageResultSet.idl',
+ 'mozIStorageRow.idl',
+ 'mozIStorageService.idl',
+ 'mozIStorageStatement.idl',
+ 'mozIStorageStatementCallback.idl',
+ 'mozIStorageStatementParams.idl',
+ 'mozIStorageStatementRow.idl',
+ 'mozIStorageVacuumParticipant.idl',
+ 'mozIStorageValueArray.idl',
+]
+
+XPIDL_MODULE = 'storage'
+
+EXPORTS += [
+ 'mozStorageHelper.h',
+]
+
+EXPORTS.mozilla += [
+ 'storage.h',
+]
+
+# NOTE When adding something to this list, you probably need to add it to the
+# storage.h file too.
+EXPORTS.mozilla.storage += [
+ 'StatementCache.h',
+ 'Variant.h',
+ 'Variant_inl.h',
+]
+# SEE ABOVE NOTE!
+
+UNIFIED_SOURCES += [
+ 'FileSystemModule.cpp',
+ 'mozStorageArgValueArray.cpp',
+ 'mozStorageAsyncStatement.cpp',
+ 'mozStorageAsyncStatementExecution.cpp',
+ 'mozStorageAsyncStatementJSHelper.cpp',
+ 'mozStorageAsyncStatementParams.cpp',
+ 'mozStorageBindingParamsArray.cpp',
+ 'mozStorageError.cpp',
+ 'mozStoragePrivateHelpers.cpp',
+ 'mozStorageResultSet.cpp',
+ 'mozStorageRow.cpp',
+ 'mozStorageService.cpp',
+ 'mozStorageSQLFunctions.cpp',
+ 'mozStorageStatement.cpp',
+ 'mozStorageStatementJSHelper.cpp',
+ 'mozStorageStatementParams.cpp',
+ 'mozStorageStatementRow.cpp',
+ 'SQLCollations.cpp',
+ 'StorageBaseStatementInternal.cpp',
+ 'TelemetryVFS.cpp',
+ 'VacuumManager.cpp',
+]
+
+# These files need to be built separately because they #include variantToSQLiteT_impl.h.
+SOURCES += [
+ 'mozStorageBindingParams.cpp',
+ 'mozStorageConnection.cpp',
+]
+
+include('/ipc/chromium/chromium-config.mozbuild')
+
+FINAL_LIBRARY = 'xul'
+
+# Don't use the jemalloc allocator on Android, because we can't guarantee
+# that Gecko will configure sqlite before it is first used (bug 730495).
+#
+# Don't use the jemalloc allocator when using system sqlite. Linked in libraries
+# (such as NSS) might trigger an initialization of sqlite and allocation
+# of memory using the default allocator, prior to the storage service
+# registering its allocator, causing memory management failures (bug 938730).
+# However, this is not an issue if both the jemalloc allocator and the default
+# allocator are the same thing.
+#
+# Note: On Windows our sqlite build assumes we use jemalloc. If you disable
+# MOZ_STORAGE_MEMORY on Windows, you will also need to change the "ifdef
+# MOZ_MEMORY" options in db/sqlite3/src/Makefile.in.
+if CONFIG['MOZ_MEMORY'] and (not CONFIG['MOZ_SYSTEM_SQLITE']
+ or CONFIG['MOZ_SYSTEM_JEMALLOC']):
+ if CONFIG['OS_TARGET'] != 'Android':
+ DEFINES['MOZ_STORAGE_MEMORY'] = True
+
+# This is the default value. If we ever change it when compiling sqlite, we
+# will need to change it here as well.
+DEFINES['SQLITE_MAX_LIKE_PATTERN_LENGTH'] = 50000
+
+# See Sqlite moz.build for reasoning about TEMP_STORE.
+# For system sqlite we cannot use the compile time option, so we use a pragma.
+if CONFIG['MOZ_SYSTEM_SQLITE'] and (CONFIG['OS_TARGET'] == 'Android'
+ or CONFIG['HAVE_64BIT_BUILD']):
+ DEFINES['MOZ_MEMORY_TEMP_STORE_PRAGMA'] = True
+
+LOCAL_INCLUDES += [
+ '/db/sqlite3/src',
+ '/dom/base',
+]
+
+CXXFLAGS += CONFIG['SQLITE_CFLAGS']