diff --git a/Builds/VisualStudio2013/RippleD.vcxproj b/Builds/VisualStudio2013/RippleD.vcxproj
index 498ae6337..4b439dfbc 100644
--- a/Builds/VisualStudio2013/RippleD.vcxproj
+++ b/Builds/VisualStudio2013/RippleD.vcxproj
@@ -2137,6 +2137,9 @@
True
+
+ True
+
True
@@ -2698,9 +2701,6 @@
True
-
- True
-
True
diff --git a/Builds/VisualStudio2013/RippleD.vcxproj.filters b/Builds/VisualStudio2013/RippleD.vcxproj.filters
index 7cecff64c..3b7d9f302 100644
--- a/Builds/VisualStudio2013/RippleD.vcxproj.filters
+++ b/Builds/VisualStudio2013/RippleD.vcxproj.filters
@@ -3075,6 +3075,9 @@
ripple\basics\impl
+
+ ripple\basics\impl
+
ripple\basics\impl
@@ -3765,9 +3768,6 @@
ripple\protocol\impl
-
- ripple\protocol\impl
-
ripple\protocol\impl
diff --git a/SConstruct b/SConstruct
index c8d8974ec..16a396a90 100644
--- a/SConstruct
+++ b/SConstruct
@@ -507,6 +507,8 @@ else:
default_toolchain = 'clang'
else:
raise ValueError("Don't understand toolchains in " + str(toolchains))
+
+default_tu_style = 'unity'
default_variant = 'release'
default_target = None
@@ -533,141 +535,168 @@ class ObjectBuilder(object):
if kwds:
env = env.Clone()
env.Prepend(**kwds)
- path = UNITY_BUILD_DIRECTORY + filename
- o = env.Object(Beast.variantFile(path, self.variant_dirs))
+ o = env.Object(Beast.variantFile(filename, self.variant_dirs))
self.objects.append(o)
+def list_sources(base, suffixes):
+ def _iter(base):
+ for parent, dirs, files in os.walk(base):
+ files = [f for f in files if not f[0] == '.']
+ dirs[:] = [d for d in dirs if not d[0] == '.']
+ for path in files:
+ path = os.path.join(parent, path)
+ r = os.path.splitext(path)
+ if r[1] in suffixes:
+ yield os.path.normpath(path)
+ return list(_iter(base))
# Declare the targets
aliases = collections.defaultdict(list)
msvc_configs = []
-for toolchain in all_toolchains:
- for variant in variants:
- # Configure this variant's construction environment
- env = base.Clone()
- config_env(toolchain, variant, env)
- variant_name = '%s.%s' % (toolchain, variant)
- variant_dir = os.path.join(build_dir, variant_name)
- variant_dirs = {
- os.path.join(variant_dir, 'src') :
- 'src',
- os.path.join(variant_dir, 'proto') :
- os.path.join (build_dir, 'proto'),
- }
- for dest, source in variant_dirs.iteritems():
- env.VariantDir(dest, source, duplicate=0)
- object_builder = ObjectBuilder(env, variant_dirs)
- object_builder.add_source_files(
- 'app.cpp',
- 'app1.cpp',
- 'app2.cpp',
- 'app3.cpp',
- 'app4.cpp',
- 'app5.cpp',
- 'app6.cpp',
- 'app7.cpp',
- 'app8.cpp',
- 'app9.cpp',
- 'basics.cpp',
- 'beast.cpp',
- 'core.cpp',
- 'crypto.cpp',
- 'json.cpp',
- 'net.cpp',
- 'overlay.cpp',
- 'peerfinder.cpp',
- 'protobuf.cpp',
- 'protocol.cpp',
- 'ripple.proto.cpp',
- 'resource.cpp',
- 'rpcx.cpp',
- 'server.cpp',
- 'validators.cpp',
- 'websocket.cpp',
- )
+for tu_style in ['classic', 'unity']:
+ for toolchain in all_toolchains:
+ for variant in variants:
+ # Configure this variant's construction environment
+ env = base.Clone()
+ config_env(toolchain, variant, env)
+ variant_name = '%s.%s' % (toolchain, variant)
+ if tu_style == 'classic':
+ variant_name += '.nounity'
+ variant_dir = os.path.join(build_dir, variant_name)
+ variant_dirs = {
+ os.path.join(variant_dir, 'src') :
+ 'src',
+ os.path.join(variant_dir, 'proto') :
+ os.path.join (build_dir, 'proto'),
+ }
+ for dest, source in variant_dirs.iteritems():
+ env.VariantDir(dest, source, duplicate=0)
- object_builder.add_source_files(
- 'beastc.c',
- CCFLAGS = ([] if toolchain == 'msvc' else ['-Wno-array-bounds']))
+ object_builder = ObjectBuilder(env, variant_dirs)
- object_builder.add_source_files(
- 'nodestore.cpp',
- CPPPATH=[
- 'src/leveldb/include',
- #'src/hyperleveldb/include', # hyper
- 'src/rocksdb2/include',
- ]
- )
+ if tu_style == 'classic':
+ object_builder.add_source_files(
+ *list_sources('src/ripple/basics', '.cpp'))
+ object_builder.add_source_files(
+ *list_sources('src/ripple/protocol', '.cpp'))
+ else:
+ object_builder.add_source_files(
+ 'src/ripple/unity/basics.cpp',
+ 'src/ripple/unity/protocol.cpp',
+ )
- if 'gcc' in toolchain:
- no_uninitialized_warning = {'CCFLAGS': ['-Wno-maybe-uninitialized']}
- else:
- no_uninitialized_warning = {}
-
- object_builder.add_source_files(
- 'leveldb.cpp',
- CPPPATH=[
- 'src/leveldb/',
- 'src/leveldb/include',
- 'src/snappy/snappy',
- 'src/snappy/config',
- ],
- **no_uninitialized_warning
- )
-
- object_builder.add_source_files(
- 'hyperleveldb.cpp',
- CPPPATH=[
- 'src/hyperleveldb',
- 'src/snappy/snappy',
- 'src/snappy/config',
- ],
- **no_uninitialized_warning
- )
-
- object_builder.add_source_files(
- 'rocksdb.cpp',
- CPPPATH=[
- 'src/rocksdb2',
- 'src/rocksdb2/include',
- 'src/snappy/snappy',
- 'src/snappy/config',
- ],
- **no_uninitialized_warning
- )
-
- object_builder.add_source_files(
- 'snappy.cpp',
- CCFLAGS=([] if toolchain == 'msvc' else ['-Wno-unused-function']),
- CPPPATH=[
- 'src/snappy/snappy',
- 'src/snappy/config',
- ]
- )
-
- if toolchain == "clang" and Beast.system.osx:
- object_builder.add_source_files('beastobjc.mm')
-
- target = env.Program(
- target=os.path.join(variant_dir, 'rippled'),
- source=object_builder.objects
+ object_builder.add_source_files(
+ 'src/ripple/unity/app.cpp',
+ 'src/ripple/unity/app1.cpp',
+ 'src/ripple/unity/app2.cpp',
+ 'src/ripple/unity/app3.cpp',
+ 'src/ripple/unity/app4.cpp',
+ 'src/ripple/unity/app5.cpp',
+ 'src/ripple/unity/app6.cpp',
+ 'src/ripple/unity/app7.cpp',
+ 'src/ripple/unity/app8.cpp',
+ 'src/ripple/unity/app9.cpp',
+ 'src/ripple/unity/beast.cpp',
+ 'src/ripple/unity/core.cpp',
+ 'src/ripple/unity/crypto.cpp',
+ 'src/ripple/unity/json.cpp',
+ 'src/ripple/unity/net.cpp',
+ 'src/ripple/unity/overlay.cpp',
+ 'src/ripple/unity/peerfinder.cpp',
+ 'src/ripple/unity/protobuf.cpp',
+ 'src/ripple/unity/ripple.proto.cpp',
+ 'src/ripple/unity/resource.cpp',
+ 'src/ripple/unity/rpcx.cpp',
+ 'src/ripple/unity/server.cpp',
+ 'src/ripple/unity/validators.cpp',
+ 'src/ripple/unity/websocket.cpp'
)
- if toolchain == default_toolchain and variant == default_variant:
- default_target = target
- install_target = env.Install (build_dir, source=default_target)
- env.Alias ('install', install_target)
- env.Default (install_target)
- aliases['all'].extend(install_target)
- if toolchain == 'msvc':
- config = env.VSProjectConfig(variant, 'x64', target, env)
- msvc_configs.append(config)
- if toolchain in toolchains:
- aliases['all'].extend(target)
- aliases[variant].extend(target)
- aliases[toolchain].extend(target)
- env.Alias(variant_name, target)
+ object_builder.add_source_files(
+ 'src/ripple/unity/beastc.c',
+ CCFLAGS = ([] if toolchain == 'msvc' else ['-Wno-array-bounds']))
+
+ object_builder.add_source_files(
+ 'src/ripple/unity/nodestore.cpp',
+ CPPPATH=[
+ 'src/leveldb/include',
+ #'src/hyperleveldb/include', # hyper
+ 'src/rocksdb2/include',
+ ]
+ )
+
+ if 'gcc' in toolchain:
+ no_uninitialized_warning = {'CCFLAGS': ['-Wno-maybe-uninitialized']}
+ else:
+ no_uninitialized_warning = {}
+
+ object_builder.add_source_files(
+ 'src/ripple/unity/leveldb.cpp',
+ CPPPATH=[
+ 'src/leveldb/',
+ 'src/leveldb/include',
+ 'src/snappy/snappy',
+ 'src/snappy/config',
+ ],
+ **no_uninitialized_warning
+ )
+
+ object_builder.add_source_files(
+ 'src/ripple/unity/hyperleveldb.cpp',
+ CPPPATH=[
+ 'src/hyperleveldb',
+ 'src/snappy/snappy',
+ 'src/snappy/config',
+ ],
+ **no_uninitialized_warning
+ )
+
+ object_builder.add_source_files(
+ 'src/ripple/unity/rocksdb.cpp',
+ CPPPATH=[
+ 'src/rocksdb2',
+ 'src/rocksdb2/include',
+ 'src/snappy/snappy',
+ 'src/snappy/config',
+ ],
+ **no_uninitialized_warning
+ )
+
+ object_builder.add_source_files(
+ 'src/ripple/unity/snappy.cpp',
+ CCFLAGS=([] if toolchain == 'msvc' else ['-Wno-unused-function']),
+ CPPPATH=[
+ 'src/snappy/snappy',
+ 'src/snappy/config',
+ ]
+ )
+
+ if toolchain == "clang" and Beast.system.osx:
+ object_builder.add_source_files('src/ripple/unity/beastobjc.mm')
+
+ target = env.Program(
+ target=os.path.join(variant_dir, 'rippled'),
+ source=object_builder.objects
+ )
+
+ if tu_style == default_tu_style:
+ if toolchain == default_toolchain and (
+ variant == default_variant):
+ default_target = target
+ install_target = env.Install (build_dir, source=default_target)
+ env.Alias ('install', install_target)
+ env.Default (install_target)
+ aliases['all'].extend(install_target)
+ if toolchain == 'msvc':
+ config = env.VSProjectConfig(variant, 'x64', target, env)
+ msvc_configs.append(config)
+ if toolchain in toolchains:
+ aliases['all'].extend(target)
+ aliases[toolchain].extend(target)
+ if toolchain in toolchains:
+ aliases[variant].extend(target)
+ env.Alias(variant_name, target)
for key, value in aliases.iteritems():
env.Alias(key, value)
@@ -700,7 +729,6 @@ def do_count(target, source, env):
if r[0].endswith('.test'):
yield os.path.normpath(path)
return list(_iter(base))
-
testfiles = list_testfiles(os.path.join('src', 'ripple'), env.get('CPPSUFFIXES'))
lines = 0
for f in testfiles:
diff --git a/src/ripple/basics/StringUtilities.h b/src/ripple/basics/StringUtilities.h
index 7abdc6be8..986afbbda 100644
--- a/src/ripple/basics/StringUtilities.h
+++ b/src/ripple/basics/StringUtilities.h
@@ -25,6 +25,7 @@
#include
#include
#include
+#include
#include
namespace ripple {
diff --git a/src/ripple/basics/Sustain.h b/src/ripple/basics/Sustain.h
index 30ea9e868..17d80734a 100644
--- a/src/ripple/basics/Sustain.h
+++ b/src/ripple/basics/Sustain.h
@@ -20,6 +20,8 @@
#ifndef RIPPLE_BASICS_SUSTAIN_H_INCLUDED
#define RIPPLE_BASICS_SUSTAIN_H_INCLUDED
+#include
+
namespace ripple {
// "Sustain" is a system for a buddy process that monitors the main process
diff --git a/src/ripple/basics/Time.h b/src/ripple/basics/Time.h
index d0474ef5a..20688d60d 100644
--- a/src/ripple/basics/Time.h
+++ b/src/ripple/basics/Time.h
@@ -20,6 +20,8 @@
#ifndef RIPPLE_BASICS_TIME_H_INCLUDED
#define RIPPLE_BASICS_TIME_H_INCLUDED
+#include
+
namespace ripple {
// VFALCO TODO Roll this into some utilities header
diff --git a/src/ripple/basics/impl/CheckLibraryVersionsImpl.h b/src/ripple/basics/impl/CheckLibraryVersionsImpl.h
index b6aa8b2be..e2d3c0fd8 100644
--- a/src/ripple/basics/impl/CheckLibraryVersionsImpl.h
+++ b/src/ripple/basics/impl/CheckLibraryVersionsImpl.h
@@ -21,6 +21,8 @@
#define RIPPLE_BASICS_CHECKLIBRARYVERSIONS_IMPL_H_INCLUDED
#include
+#include
+#include
namespace ripple {
namespace version {
diff --git a/src/ripple/basics/impl/Log.cpp b/src/ripple/basics/impl/Log.cpp
index e01a3c6f5..e4a7d3449 100644
--- a/src/ripple/basics/impl/Log.cpp
+++ b/src/ripple/basics/impl/Log.cpp
@@ -21,6 +21,7 @@
#include
// VFALCO TODO Use std::chrono
#include
+#include
#include
namespace ripple {
@@ -203,7 +204,7 @@ Logs::fromSeverity (beast::Journal::Severity level)
case Journal::kError: return lsERROR;
default:
- bassertfalse;
+ assert(false);
case Journal::kFatal:
break;
}
@@ -223,7 +224,7 @@ Logs::toSeverity (LogSeverity level)
case lsWARNING: return Journal::kWarning;
case lsERROR: return Journal::kError;
default:
- bassertfalse;
+ assert(false);
case lsFATAL:
break;
}
@@ -313,7 +314,7 @@ Logs::format (std::string& output, std::string const& message,
case beast::Journal::kWarning: output += "WRN "; break;
case beast::Journal::kError: output += "ERR "; break;
default:
- bassertfalse;
+ assert(false);
case beast::Journal::kFatal: output += "FTL "; break;
}
diff --git a/src/ripple/basics/impl/StringUtilities.cpp b/src/ripple/basics/impl/StringUtilities.cpp
index a39a52ab4..af415a43d 100644
--- a/src/ripple/basics/impl/StringUtilities.cpp
+++ b/src/ripple/basics/impl/StringUtilities.cpp
@@ -18,14 +18,15 @@
//==============================================================================
#include
+#include
#include
#include
+#include
#include
#include
+#include
#include
-#include
-
namespace ripple {
// NIKB NOTE: This function is only used by strUnHex (std::string const& strSrc)
diff --git a/src/ripple/basics/impl/Sustain.cpp b/src/ripple/basics/impl/Sustain.cpp
index a147624ec..5ac79444e 100644
--- a/src/ripple/basics/impl/Sustain.cpp
+++ b/src/ripple/basics/impl/Sustain.cpp
@@ -17,14 +17,17 @@
*/
//==============================================================================
+#include
#include
-
+#include
+
// For Sustain Linux variants
// VFALCO TODO Rewrite Sustain to use beast::Process
#ifdef __linux__
#include
#include
#include
+#include
#endif
#ifdef __FreeBSD__
#include
diff --git a/src/ripple/basics/impl/Time.cpp b/src/ripple/basics/impl/Time.cpp
index e59b3dcb1..49c2c5608 100644
--- a/src/ripple/basics/impl/Time.cpp
+++ b/src/ripple/basics/impl/Time.cpp
@@ -17,6 +17,8 @@
*/
//==============================================================================
+#include
+
namespace ripple {
// VFALCO TODO Tidy this up into a RippleTime object
diff --git a/src/ripple/basics/impl/UptimeTimer.cpp b/src/ripple/basics/impl/UptimeTimer.cpp
index b7e3517f8..1385f9e72 100644
--- a/src/ripple/basics/impl/UptimeTimer.cpp
+++ b/src/ripple/basics/impl/UptimeTimer.cpp
@@ -18,6 +18,7 @@
//==============================================================================
#include
+#include
#include
diff --git a/src/ripple/protocol/impl/strHex.cpp b/src/ripple/basics/impl/strHex.cpp
similarity index 98%
rename from src/ripple/protocol/impl/strHex.cpp
rename to src/ripple/basics/impl/strHex.cpp
index 3e09fdb44..25e855b0d 100644
--- a/src/ripple/protocol/impl/strHex.cpp
+++ b/src/ripple/basics/impl/strHex.cpp
@@ -17,6 +17,8 @@
*/
//==============================================================================
+#include
+
namespace ripple {
char charHex (int iDigit)
diff --git a/src/ripple/basics/strHex.h b/src/ripple/basics/strHex.h
index a8d477682..ec0068d25 100644
--- a/src/ripple/basics/strHex.h
+++ b/src/ripple/basics/strHex.h
@@ -25,6 +25,8 @@
#ifndef RIPPLE_BASICS_STRHEX_H_INCLUDED
#define RIPPLE_BASICS_STRHEX_H_INCLUDED
+#include
+
namespace ripple {
/** Converts an integer to the corresponding hex digit
diff --git a/src/ripple/basics/tests/StringUtilities.test.cpp b/src/ripple/basics/tests/StringUtilities.test.cpp
index c960eeb0e..00176ea5e 100644
--- a/src/ripple/basics/tests/StringUtilities.test.cpp
+++ b/src/ripple/basics/tests/StringUtilities.test.cpp
@@ -18,6 +18,7 @@
//==============================================================================
#include
+#include
#include
namespace ripple {
diff --git a/src/ripple/protocol/STAccount.h b/src/ripple/protocol/STAccount.h
index 056c0c08c..ce5fabbcd 100644
--- a/src/ripple/protocol/STAccount.h
+++ b/src/ripple/protocol/STAccount.h
@@ -20,7 +20,9 @@
#ifndef RIPPLE_PROTOCOL_STACCOUNT_H_INCLUDED
#define RIPPLE_PROTOCOL_STACCOUNT_H_INCLUDED
+#include
#include
+#include
namespace ripple {
diff --git a/src/ripple/protocol/STPathSet.h b/src/ripple/protocol/STPathSet.h
index 93c72d7e1..931eeef18 100644
--- a/src/ripple/protocol/STPathSet.h
+++ b/src/ripple/protocol/STPathSet.h
@@ -20,6 +20,10 @@
#ifndef RIPPLE_PROTOCOL_STPATHELEMENT_H_INCLUDED
#define RIPPLE_PROTOCOL_STPATHELEMENT_H_INCLUDED
+#include
+#include
+#include
+#include
#include
namespace ripple {
diff --git a/src/ripple/protocol/SystemParameters.h b/src/ripple/protocol/SystemParameters.h
index 16340ff8e..036046214 100644
--- a/src/ripple/protocol/SystemParameters.h
+++ b/src/ripple/protocol/SystemParameters.h
@@ -21,10 +21,11 @@
#define RIPPLE_CORE_SYSTEMPARAMETERS_H_INCLUDED
#include
+#include
namespace ripple {
-/** Various protocol and system specific constant globals. */
+// Various protocol and system specific constant globals.
/* The name of the system. */
static inline
diff --git a/src/ripple/protocol/impl/STLedgerEntry.cpp b/src/ripple/protocol/impl/STLedgerEntry.cpp
index f03eba61b..ab9c9d230 100644
--- a/src/ripple/protocol/impl/STLedgerEntry.cpp
+++ b/src/ripple/protocol/impl/STLedgerEntry.cpp
@@ -17,8 +17,12 @@
*/
//==============================================================================
+#include
+#include
#include
+#include
#include
+#include
namespace ripple {
diff --git a/src/ripple/protocol/impl/STParsedJSON.cpp b/src/ripple/protocol/impl/STParsedJSON.cpp
index 2595afc8d..933f4f0a0 100644
--- a/src/ripple/protocol/impl/STParsedJSON.cpp
+++ b/src/ripple/protocol/impl/STParsedJSON.cpp
@@ -20,8 +20,19 @@
#include
#include
#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
#include
#include
+#include //
namespace ripple {
diff --git a/src/ripple/protocol/impl/STPathSet.cpp b/src/ripple/protocol/impl/STPathSet.cpp
index ef9ab14bf..8f5026dad 100644
--- a/src/ripple/protocol/impl/STPathSet.cpp
+++ b/src/ripple/protocol/impl/STPathSet.cpp
@@ -18,6 +18,10 @@
//==============================================================================
#include
+#include
+#include
+#include
+#include
namespace ripple {
diff --git a/src/ripple/protocol/impl/STTx.cpp b/src/ripple/protocol/impl/STTx.cpp
index d2893e341..6cbf438e1 100644
--- a/src/ripple/protocol/impl/STTx.cpp
+++ b/src/ripple/protocol/impl/STTx.cpp
@@ -17,13 +17,18 @@
*/
//==============================================================================
-#include
+#include
#include
#include
+#include
+#include
#include
#include
#include
+#include
+#include
#include
+#include
namespace ripple {
diff --git a/src/ripple/protocol/impl/STValidation.cpp b/src/ripple/protocol/impl/STValidation.cpp
index d11728615..683d1693a 100644
--- a/src/ripple/protocol/impl/STValidation.cpp
+++ b/src/ripple/protocol/impl/STValidation.cpp
@@ -19,6 +19,8 @@
#include
#include
+#include
+#include
namespace ripple {
diff --git a/src/ripple/protocol/impl/UintTypes.cpp b/src/ripple/protocol/impl/UintTypes.cpp
index 8c3bb456a..7ab564530 100644
--- a/src/ripple/protocol/impl/UintTypes.cpp
+++ b/src/ripple/protocol/impl/UintTypes.cpp
@@ -17,6 +17,7 @@
*/
//==============================================================================
+#include
#include
#include
#include
diff --git a/src/ripple/protocol/tests/BuildInfo.test.cpp b/src/ripple/protocol/tests/BuildInfo.test.cpp
index 510d52ea0..e5f489354 100644
--- a/src/ripple/protocol/tests/BuildInfo.test.cpp
+++ b/src/ripple/protocol/tests/BuildInfo.test.cpp
@@ -18,6 +18,7 @@
//==============================================================================
#include
+#include
#include
namespace ripple {
diff --git a/src/ripple/protocol/tests/RippleAddress.test.cpp b/src/ripple/protocol/tests/RippleAddress.test.cpp
index 73792dcf9..5b8dc9050 100644
--- a/src/ripple/protocol/tests/RippleAddress.test.cpp
+++ b/src/ripple/protocol/tests/RippleAddress.test.cpp
@@ -19,6 +19,8 @@
#include
#include
+#include
+#include
#include
namespace ripple {
diff --git a/src/ripple/protocol/tests/STObject.test.cpp b/src/ripple/protocol/tests/STObject.test.cpp
index 03cb6b3a8..f18385602 100644
--- a/src/ripple/protocol/tests/STObject.test.cpp
+++ b/src/ripple/protocol/tests/STObject.test.cpp
@@ -17,11 +17,14 @@
*/
//==============================================================================
+#include
#include
#include
#include
#include
#include
+#include
+#include
#include
#include //
diff --git a/src/ripple/protocol/tests/STTx.test.cpp b/src/ripple/protocol/tests/STTx.test.cpp
index 3513ab8df..705a789ce 100644
--- a/src/ripple/protocol/tests/STTx.test.cpp
+++ b/src/ripple/protocol/tests/STTx.test.cpp
@@ -18,6 +18,8 @@
//==============================================================================
#include
+#include
+#include
#include
namespace ripple {
diff --git a/src/ripple/unity/basics.cpp b/src/ripple/unity/basics.cpp
index 3c2658905..98c58cfcc 100644
--- a/src/ripple/unity/basics.cpp
+++ b/src/ripple/unity/basics.cpp
@@ -27,15 +27,16 @@
#include
#include
#include
-#include
+#include
#include
+#include
+#include
+#include
#include
#include
#include
#include
#include
-#include
-#include
#include
#include
diff --git a/src/ripple/unity/protocol.cpp b/src/ripple/unity/protocol.cpp
index 2bd934c3c..e4464dc88 100644
--- a/src/ripple/unity/protocol.cpp
+++ b/src/ripple/unity/protocol.cpp
@@ -33,7 +33,6 @@
#include
#include
#include
-#include
#include
#include
#include