diff --git a/Builds/VisualStudio2012/RippleD.vcxproj b/Builds/VisualStudio2012/RippleD.vcxproj
index 76cfae2dba..8bd7bbbe78 100644
--- a/Builds/VisualStudio2012/RippleD.vcxproj
+++ b/Builds/VisualStudio2012/RippleD.vcxproj
@@ -169,6 +169,7 @@
+
Level4
Level4
@@ -753,12 +754,6 @@
true
-
- %(AdditionalIncludeDirectories)
- %(AdditionalIncludeDirectories)
- %(AdditionalIncludeDirectories)
- %(AdditionalIncludeDirectories)
-
true
true
@@ -1555,6 +1550,7 @@
+
diff --git a/Builds/VisualStudio2012/RippleD.vcxproj.filters b/Builds/VisualStudio2012/RippleD.vcxproj.filters
index 6dd34c20d1..132e986242 100644
--- a/Builds/VisualStudio2012/RippleD.vcxproj.filters
+++ b/Builds/VisualStudio2012/RippleD.vcxproj.filters
@@ -136,11 +136,11 @@
{6bbe236f-79ff-4e30-928c-bf5f302b3a21}
+
+ {82d79c26-4932-4a48-b134-09969f45d75a}
+
-
- 0. Third Party Code\LevelDB
-
0. Third Party Code\protobuf
@@ -885,6 +885,9 @@
1. Modules\ripple_sqlite
+
+ 1. Modules\ripple_leveldb
+
@@ -1698,6 +1701,9 @@
1. Modules\ripple_sqlite
+
+ 1. Modules\ripple_leveldb
+
diff --git a/SConstruct b/SConstruct
index 695901de73..389813e57b 100644
--- a/SConstruct
+++ b/SConstruct
@@ -101,12 +101,12 @@ INCLUDE_PATHS = [
]
COMPILED_FILES = [
- 'src/cpp/leveldb_core.cpp',
'Subtrees/beast/modules/beast_core/beast_core.cpp',
'Subtrees/beast/modules/beast_basics/beast_basics.cpp',
'modules/ripple_basics/ripple_basics.cpp',
'modules/ripple_data/ripple_data.cpp',
'modules/ripple_json/ripple_json.cpp',
+ 'modules/ripple_leveldb/ripple_leveldb.cpp',
'modules/ripple_websocket/ripple_websocket.cpp',
'modules/ripple_sqlite/ripple_sqlite.c',
'modules/ripple_app/ripple_app_pt1.cpp',
diff --git a/modules/ripple_data/ripple_data.h b/modules/ripple_data/ripple_data.h
index 022434150e..7f477984e2 100644
--- a/modules/ripple_data/ripple_data.h
+++ b/modules/ripple_data/ripple_data.h
@@ -45,14 +45,8 @@
// VFALCO TODO try to reduce these dependencies
#include "../ripple_basics/ripple_basics.h"
-//------------------------------------------------------------------------------
-
-// VFALCO TODO prepare a unity header for LevelDB
// VFALCO TODO don't expose leveldb throughout the headers
-#include "leveldb/cache.h"
-#include "leveldb/filter_policy.h"
-#include "leveldb/db.h"
-#include "leveldb/write_batch.h"
+#include "../ripple_leveldb/ripple_leveldb.h"
// VFALCO TODO figure out a good place for this file, perhaps give it some
// additional hierarchy via directories.
diff --git a/src/cpp/leveldb_core.cpp b/modules/ripple_leveldb/ripple_leveldb.cpp
similarity index 62%
rename from src/cpp/leveldb_core.cpp
rename to modules/ripple_leveldb/ripple_leveldb.cpp
index 8da5afb453..fcf011da74 100644
--- a/src/cpp/leveldb_core.cpp
+++ b/modules/ripple_leveldb/ripple_leveldb.cpp
@@ -1,14 +1,33 @@
+//------------------------------------------------------------------------------
+/*
+ Copyright (c) 2011-2013, OpenCoin, Inc.
+*/
+//==============================================================================
-// Unity build file for LevelDB by Vinnie Falco
+// Unity build file for LevelDB
+
+#include "ripple_leveldb.h"
+
+#include "beast/modules/beast_core/system/beast_TargetPlatform.h"
+
+// Set the appropriate LevelDB platform macro based on our platform.
//
+#if BEAST_WIN32
+ #define LEVELDB_PLATFORM_WINDOWS
+
+#elif BEAST_MAC || BEAST_IOS
+ #define OS_MACOSX
+
+// VFALCO TODO Distinguish between BEAST_BSD and BEAST_FREEBSD
+#elif BEAST_BSD
+ #define OS_FREEBSD
-#ifdef _WIN32
-# define LEVELDB_PLATFORM_WINDOWS
#else
-# define LEVELDB_PLATFORM_POSIX
+ #define LEVELDB_PLATFORM_POSIX
+
#endif
-#ifdef _MSC_VER
+#if BEAST_MSVC
#pragma warning (push)
#pragma warning (disable: 4018) // signed/unsigned mismatch
#pragma warning (disable: 4244) // conversion, possible loss of data
@@ -67,32 +86,6 @@
#endif
-//#include "leveldb/db/c.cc"
-//#include "leveldb/db/corruption_test.cc"
-//#include "leveldb/db/db_bench.cc"
-//#include "leveldb/db/db_test.cc"
-//#include "leveldb/db/dbformat_test.cc"
-//#include "leveldb/db/filename_test.cc"
-//#include "leveldb/db/leveldb_main.cc"
-//#include "leveldb/db/log_test.cc"
-//#include "leveldb/db/skiplist_test.cc"
-//#include "leveldb/db/version_edit_test.cc"
-//#include "leveldb/db/version_set_test.cc"
-//#include "leveldb/db/write_batch_test.cc"
-
-//#include "leveldb/util/arena_test.cc"
-//#include "leveldb/util/bloom_test.cc"
-//#include "leveldb/util/cache_test.cc"
-//#include "leveldb/util/coding_test.cc"
-//#include "leveldb/util/crc32c_test.cc"
-//#include "leveldb/util/env_test.cc"
-//#include "leveldb/util/testharness.cc"
-//#include "leveldb/util/testutil.cc"
-
-//#include "leveldb/table/filter_block_test.cc"
-//#include "leveldb/table/table_test.cc"
-
-#ifdef _MSC_VER
+#ifdef BEAST_MSVC
#pragma warning (pop)
#endif
-
diff --git a/modules/ripple_leveldb/ripple_leveldb.h b/modules/ripple_leveldb/ripple_leveldb.h
new file mode 100644
index 0000000000..eac1af663b
--- /dev/null
+++ b/modules/ripple_leveldb/ripple_leveldb.h
@@ -0,0 +1,15 @@
+//------------------------------------------------------------------------------
+/*
+ Copyright (c) 2011-2013, OpenCoin, Inc.
+*/
+//==============================================================================
+
+#ifndef RIPPLE_LEVELDB_RIPPLEHEADER
+#define RIPPLE_LEVELDB_RIPPLEHEADER
+
+#include "leveldb/cache.h"
+#include "leveldb/filter_policy.h"
+#include "leveldb/db.h"
+#include "leveldb/write_batch.h"
+
+#endif