summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/ThirdParty/leveldb/Target.pri115
-rw-r--r--Source/ThirdParty/leveldb/leveldb.pri13
-rw-r--r--Source/ThirdParty/leveldb/leveldb.pro12
-rw-r--r--Source/WebCore/Target.pri3
-rw-r--r--Source/WebCore/WebCore.pri2
-rw-r--r--Source/WebCore/platform/leveldb/LevelDBDatabase.cpp2
-rw-r--r--Tools/qmake/config.tests/leveldb/leveldb.cpp2
-rw-r--r--Tools/qmake/mkspecs/features/features.prf4
-rw-r--r--Tools/qmake/mkspecs/features/webkit_modules.prf2
-rw-r--r--Tools/qmake/mkspecs/modules/leveldb.prf9
-rw-r--r--WebKit.pro6
11 files changed, 164 insertions, 6 deletions
diff --git a/Source/ThirdParty/leveldb/Target.pri b/Source/ThirdParty/leveldb/Target.pri
new file mode 100644
index 000000000..48d8550ff
--- /dev/null
+++ b/Source/ThirdParty/leveldb/Target.pri
@@ -0,0 +1,115 @@
+# -------------------------------------------------------------------
+# Target file for the leveldb static library
+#
+# See 'Tools/qmake/README' for an overview of the build system
+# -------------------------------------------------------------------
+
+TEMPLATE = lib
+TARGET = leveldb
+
+include(leveldb.pri)
+
+CONFIG += staticlib
+
+HEADERS += \
+ db/builder.h \
+ db/dbformat.h \
+ db/db_impl.h \
+ db/db_iter.h \
+ db/filename.h \
+ db/log_format.h \
+ db/log_reader.h \
+ db/log_writer.h \
+ db/memtable.h \
+ db/skiplist.h \
+ db/snapshot.h \
+ db/table_cache.h \
+ db/version_edit.h \
+ db/version_set.h \
+ db/write_batch_internal.h \
+ port/atomic_pointer.h \
+ port/port_example.h \
+ port/port.h \
+ port/port_posix.h \
+ port/thread_annotations.h \
+ port/win/stdint.h \
+ helpers/memenv/memenv.h \
+ table/block_builder.h \
+ table/block.h \
+ table/filter_block.h \
+ table/format.h \
+ table/iterator_wrapper.h \
+ table/merger.h \
+ table/two_level_iterator.h \
+ include/leveldb/cache.h \
+ include/leveldb/c.h \
+ include/leveldb/comparator.h \
+ include/leveldb/db.h \
+ include/leveldb/env.h \
+ include/leveldb/filter_policy.h \
+ include/leveldb/iterator.h \
+ include/leveldb/options.h \
+ include/leveldb/slice.h \
+ include/leveldb/status.h \
+ include/leveldb/table_builder.h \
+ include/leveldb/table.h \
+ include/leveldb/write_batch.h \
+ util/arena.h \
+ util/coding.h \
+ util/crc32c.h \
+ util/hash.h \
+ util/histogram.h \
+ util/logging.h \
+ util/mutexlock.h \
+ util/posix_logger.h \
+ util/random.h
+
+SOURCES += \
+ db/builder.cc\
+ db/c.cc \
+ db/dbformat.cc \
+ db/db_impl.cc \
+ db/db_iter.cc \
+ db/filename.cc \
+ db/log_reader.cc \
+ db/log_writer.cc \
+ db/memtable.cc \
+ db/repair.cc \
+ db/table_cache.cc \
+ db/version_edit.cc \
+ db/version_set.cc \
+ db/write_batch.cc \
+ helpers/memenv/memenv.cc \
+ port/port_posix.cc \
+ table/block_builder.cc \
+ table/block.cc \
+ table/filter_block.cc \
+ table/format.cc \
+ table/iterator.cc \
+ table/merger.cc \
+ table/table_builder.cc \
+ table/table.cc \
+ table/two_level_iterator.cc \
+ util/arena.cc \
+ util/bloom.cc \
+ util/cache.cc \
+ util/coding.cc \
+ util/comparator.cc \
+ util/crc32c.cc \
+ util/env.cc \
+ util/env_posix.cc \
+ util/filter_policy.cc \
+ util/hash.cc \
+ util/histogram.cc \
+ util/logging.cc \
+ util/options.cc \
+ util/status.cc
+
+posix: DEFINES += LEVELDB_PLATFORM_POSIX
+win: DEFINES += OS_WIN
+mac: DEFINES += OS_MACOSX
+linux: DEFINES += OS_LINUX
+freebsd*: DEFINES += OS_FREEBSD
+
+# We do not need anything from Qt
+QT =
diff --git a/Source/ThirdParty/leveldb/leveldb.pri b/Source/ThirdParty/leveldb/leveldb.pri
new file mode 100644
index 000000000..e58c03211
--- /dev/null
+++ b/Source/ThirdParty/leveldb/leveldb.pri
@@ -0,0 +1,13 @@
+# -------------------------------------------------------------------
+# This file contains shared rules used both when building leveldb
+# itself, and by targets that use leveldb.
+#
+# See 'Tools/qmake/README' for an overview of the build system
+# -------------------------------------------------------------------
+
+SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/ThirdParty/leveldb
+
+INCLUDEPATH += \
+ $$SOURCE_DIR/include \
+ $$SOURCE_DIR
+
diff --git a/Source/ThirdParty/leveldb/leveldb.pro b/Source/ThirdParty/leveldb/leveldb.pro
new file mode 100644
index 000000000..f502a826f
--- /dev/null
+++ b/Source/ThirdParty/leveldb/leveldb.pro
@@ -0,0 +1,12 @@
+# -------------------------------------------------------------------
+# Main project file for ANGLE
+#
+# See 'Tools/qmake/README' for an overview of the build system
+# -------------------------------------------------------------------
+
+TEMPLATE = subdirs
+
+target.file = Target.pri
+
+SUBDIRS += target
+
diff --git a/Source/WebCore/Target.pri b/Source/WebCore/Target.pri
index 9b162f620..9e8f0b526 100644
--- a/Source/WebCore/Target.pri
+++ b/Source/WebCore/Target.pri
@@ -3138,6 +3138,9 @@ enable?(INDEXED_DATABASE) {
Modules/indexeddb/IDBVersionChangeEvent.cpp \
Modules/indexeddb/PageGroupIndexedDatabase.cpp \
Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp
+
+ use?(leveldb):!use?(system_leveldb): WEBKIT += leveldb
+
}
enable?(DATA_TRANSFER_ITEMS) {
diff --git a/Source/WebCore/WebCore.pri b/Source/WebCore/WebCore.pri
index 43b655ad6..fd33777f7 100644
--- a/Source/WebCore/WebCore.pri
+++ b/Source/WebCore/WebCore.pri
@@ -246,7 +246,7 @@ have?(sqlite3) {
}
}
-use?(leveldb): LIBS += -lleveldb -lmemenv
+use?(system_leveldb): LIBS += -lleveldb -lmemenv
use?(libjpeg): LIBS += -ljpeg
use?(libpng): LIBS += -lpng
diff --git a/Source/WebCore/platform/leveldb/LevelDBDatabase.cpp b/Source/WebCore/platform/leveldb/LevelDBDatabase.cpp
index 994d2c568..281a784d3 100644
--- a/Source/WebCore/platform/leveldb/LevelDBDatabase.cpp
+++ b/Source/WebCore/platform/leveldb/LevelDBDatabase.cpp
@@ -38,7 +38,7 @@
#include <leveldb/comparator.h>
#include <leveldb/db.h>
#include <leveldb/env.h>
-#include <leveldb/helpers/memenv.h>
+#include <helpers/memenv/memenv.h>
#include <leveldb/slice.h>
#include <string>
#include <wtf/PassOwnPtr.h>
diff --git a/Tools/qmake/config.tests/leveldb/leveldb.cpp b/Tools/qmake/config.tests/leveldb/leveldb.cpp
index 84a52beb7..9c647bc1e 100644
--- a/Tools/qmake/config.tests/leveldb/leveldb.cpp
+++ b/Tools/qmake/config.tests/leveldb/leveldb.cpp
@@ -19,7 +19,7 @@
#include <leveldb/db.h>
#include <leveldb/env.h>
-#include <leveldb/helpers/memenv.h>
+#include <helpers/memenv/memenv.h>
int main(int, char**)
{
diff --git a/Tools/qmake/mkspecs/features/features.prf b/Tools/qmake/mkspecs/features/features.prf
index d8da581c6..9f9677d0b 100644
--- a/Tools/qmake/mkspecs/features/features.prf
+++ b/Tools/qmake/mkspecs/features/features.prf
@@ -44,7 +44,7 @@ defineTest(detectFeatures) {
config_libxslt: WEBKIT_CONFIG += xslt
config_libzlib: WEBKIT_CONFIG += use_zlib
config_libwebp: WEBKIT_CONFIG += use_webp
- config_leveldb: WEBKIT_CONFIG += use_leveldb
+ config_leveldb: WEBKIT_CONFIG += use_system_leveldb
# We can't use Qt's 3rdparty sources for libjpeg and libpng outside of qtbase, but if Qt
# is using the system libraries, use them to take advantage of the WebCore image decoders as well.
@@ -170,7 +170,7 @@ defineTest(santizeFeatures) {
use?(gstreamer): WEBKIT_CONFIG += use_glib
# IndexedDB requires leveldb
- !use?(leveldb): WEBKIT_CONFIG -= indexed_database
+ enable?(indexed_database): WEBKIT_CONFIG += use_leveldb
# VideoTrack requires video
!enable?(video): WEBKIT_CONFIG -= video_track
diff --git a/Tools/qmake/mkspecs/features/webkit_modules.prf b/Tools/qmake/mkspecs/features/webkit_modules.prf
index 189387835..005a1bd3d 100644
--- a/Tools/qmake/mkspecs/features/webkit_modules.prf
+++ b/Tools/qmake/mkspecs/features/webkit_modules.prf
@@ -7,7 +7,7 @@
# Reorder libraries so that the link and include order is correct,
# and make sure the case matches the original case.
-libraries = WebKit1 WebKit2 WebCore ANGLE JavaScriptCore WTF
+libraries = WebKit1 WebKit2 WebCore ANGLE leveldb JavaScriptCore WTF
for(library, libraries) {
contains(WEBKIT, $$lower($$library)) {
WEBKIT -= $$lower($$library)
diff --git a/Tools/qmake/mkspecs/modules/leveldb.prf b/Tools/qmake/mkspecs/modules/leveldb.prf
new file mode 100644
index 000000000..d06acf05e
--- /dev/null
+++ b/Tools/qmake/mkspecs/modules/leveldb.prf
@@ -0,0 +1,9 @@
+# -------------------------------------------------------------------
+# Module file for leveldb, used by targets that depend on leveldb
+#
+# See 'Tools/qmake/README' for an overview of the build system
+# -------------------------------------------------------------------
+
+WEBKIT.leveldb.root_source_dir = $${ROOT_WEBKIT_DIR}/Source/ThirdParty/leveldb
+
+include($${WEBKIT.leveldb.root_source_dir}/leveldb.pri)
diff --git a/WebKit.pro b/WebKit.pro
index f7167129f..11b59e58b 100644
--- a/WebKit.pro
+++ b/WebKit.pro
@@ -24,6 +24,12 @@ use?(3D_GRAPHICS) {
SUBDIRS += ANGLE
}
+use?(leveldb):!use?(system_leveldb) {
+ leveldb.file = Source/ThirdParty/leveldb/leveldb.pro
+ leveldb.makefile = Makefile.leveldb
+ SUBDIRS += leveldb
+}
+
WebCore.file = Source/WebCore/WebCore.pro
WebCore.makefile = Makefile.WebCore
SUBDIRS += WebCore