summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorevoskuil <eric@voskuil.org>2014-03-28 17:47:13 (GMT)
committer evoskuil <eric@voskuil.org>2014-03-28 17:47:13 (GMT)
commitf09808ca0e647eee9966690b5c297a0aa35fb8bc (patch)
treea878be6bc197fdb5f220a3c5379584c69eb7f190
parent5caa8cbc850fec08534c681845bfe3c4672c14bc (diff)
parent6f143c62800dd8f6cbfa1d12ec721e2a780fbff4 (diff)
Merge pull request #11 from evoskuil/master
Visual Studio 2013 Builds
-rw-r--r--.gitignore2
-rw-r--r--builds/msvc/vs2013/.gitignore3
-rw-r--r--builds/msvc/vs2013/obelisk.sln52
-rw-r--r--builds/msvc/vs2013/obelisk/.gitignore5
-rw-r--r--builds/msvc/vs2013/obelisk/obelisk.props41
-rw-r--r--builds/msvc/vs2013/obelisk/obelisk.vcxproj288
-rw-r--r--builds/msvc/vs2013/obelisk/obelisk.vcxproj.filters156
-rw-r--r--builds/msvc/vs2013/obelisk/packages.config12
-rw-r--r--builds/msvc/vs2013/properties/Common.props27
-rw-r--r--builds/msvc/vs2013/properties/Debug.props30
-rw-r--r--builds/msvc/vs2013/properties/Dynamic.props19
-rw-r--r--builds/msvc/vs2013/properties/DynamicDebug.props21
-rw-r--r--builds/msvc/vs2013/properties/DynamicRelease.props21
-rw-r--r--builds/msvc/vs2013/properties/LinkTimeCodeGeneration.props24
-rw-r--r--builds/msvc/vs2013/properties/Release.props41
-rw-r--r--builds/msvc/vs2013/properties/Static.props19
-rw-r--r--builds/msvc/vs2013/properties/StaticDebug.props21
-rw-r--r--builds/msvc/vs2013/properties/StaticDebugLinkTimeCodeGeneration.props21
-rw-r--r--builds/msvc/vs2013/properties/StaticLinkTimeCodeGeneration.props18
-rw-r--r--builds/msvc/vs2013/properties/StaticRelease.props21
-rw-r--r--builds/msvc/vs2013/properties/StaticReleaseLinkTimeCodeGeneration.props21
-rw-r--r--builds/msvc/vs2013/properties/Win32.props21
-rw-r--r--builds/msvc/vs2013/properties/x64.props24
-rw-r--r--src/Makefile.am10
-rw-r--r--src/client/backend.cpp4
-rw-r--r--src/client/interface/client_blockchain.cpp (renamed from src/client/interface/blockchain.cpp)4
-rw-r--r--src/client/interface/client_fetch_x.cpp (renamed from src/client/interface/fetch_x.cpp)4
-rw-r--r--src/client/interface/client_fetch_x.hpp (renamed from src/client/interface/fetch_x.hpp)0
-rw-r--r--src/client/interface/client_interface.cpp (renamed from src/client/interface/interface.cpp)4
-rw-r--r--src/client/interface/client_protocol.cpp (renamed from src/client/interface/protocol.cpp)2
-rw-r--r--src/client/interface/client_transaction_pool.cpp (renamed from src/client/interface/transaction_pool.cpp)4
-rw-r--r--src/client/interface/client_util.hpp (renamed from src/client/interface/util.hpp)0
-rw-r--r--src/worker/config.cpp68
-rw-r--r--src/worker/config.hpp23
-rw-r--r--src/worker/main.cpp30
-rw-r--r--src/worker/node_impl.cpp3
-rw-r--r--src/worker/service/fetch_x.cpp2
-rw-r--r--src/worker/service/fetch_x.hpp2
38 files changed, 1027 insertions, 41 deletions
diff --git a/.gitignore b/.gitignore
index b91ff03..c29a2c9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,5 @@ libobelisk.pc
/src/obbalancer
/src/obworker
+/bin/
+/obj/
diff --git a/builds/msvc/vs2013/.gitignore b/builds/msvc/vs2013/.gitignore
new file mode 100644
index 0000000..c4e9041
--- /dev/null
+++ b/builds/msvc/vs2013/.gitignore
@@ -0,0 +1,3 @@
+*.v12.suo
+*.opensdf
+*.sdf
diff --git a/builds/msvc/vs2013/obelisk.sln b/builds/msvc/vs2013/obelisk.sln
new file mode 100644
index 0000000..3ddd1c9
--- /dev/null
+++ b/builds/msvc/vs2013/obelisk.sln
@@ -0,0 +1,52 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.30110.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obelisk", "obelisk\obelisk.vcxproj", "{B0BB6841-1FA9-4E09-8672-5B5419971EF6}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ DynDebug|Win32 = DynDebug|Win32
+ DynDebug|x64 = DynDebug|x64
+ DynRelease|Win32 = DynRelease|Win32
+ DynRelease|x64 = DynRelease|x64
+ LtcgDebug|Win32 = LtcgDebug|Win32
+ LtcgDebug|x64 = LtcgDebug|x64
+ LtcgRelease|Win32 = LtcgRelease|Win32
+ LtcgRelease|x64 = LtcgRelease|x64
+ StaticDebug|Win32 = StaticDebug|Win32
+ StaticDebug|x64 = StaticDebug|x64
+ StaticRelease|Win32 = StaticRelease|Win32
+ StaticRelease|x64 = StaticRelease|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.DynDebug|Win32.ActiveCfg = DebugDLL|Win32
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.DynDebug|Win32.Build.0 = DebugDLL|Win32
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.DynDebug|x64.ActiveCfg = DebugDLL|x64
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.DynDebug|x64.Build.0 = DebugDLL|x64
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.DynRelease|Win32.ActiveCfg = ReleaseDLL|Win32
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.DynRelease|Win32.Build.0 = ReleaseDLL|Win32
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.DynRelease|x64.ActiveCfg = ReleaseDLL|x64
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.DynRelease|x64.Build.0 = ReleaseDLL|x64
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.LtcgDebug|Win32.ActiveCfg = DebugLTCG|Win32
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.LtcgDebug|Win32.Build.0 = DebugLTCG|Win32
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.LtcgDebug|x64.ActiveCfg = DebugLTCG|x64
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.LtcgDebug|x64.Build.0 = DebugLTCG|x64
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.LtcgRelease|Win32.ActiveCfg = ReleaseLTCG|Win32
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.LtcgRelease|Win32.Build.0 = ReleaseLTCG|Win32
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.LtcgRelease|x64.ActiveCfg = ReleaseLTCG|x64
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.LtcgRelease|x64.Build.0 = ReleaseLTCG|x64
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.StaticDebug|Win32.ActiveCfg = DebugLIB|Win32
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.StaticDebug|Win32.Build.0 = DebugLIB|Win32
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.StaticDebug|x64.ActiveCfg = DebugLIB|x64
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.StaticDebug|x64.Build.0 = DebugLIB|x64
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.StaticRelease|Win32.ActiveCfg = ReleaseLIB|Win32
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.StaticRelease|Win32.Build.0 = ReleaseLIB|Win32
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.StaticRelease|x64.ActiveCfg = ReleaseLIB|x64
+ {B0BB6841-1FA9-4E09-8672-5B5419971EF6}.StaticRelease|x64.Build.0 = ReleaseLIB|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/builds/msvc/vs2013/obelisk/.gitignore b/builds/msvc/vs2013/obelisk/.gitignore
new file mode 100644
index 0000000..1932413
--- /dev/null
+++ b/builds/msvc/vs2013/obelisk/.gitignore
@@ -0,0 +1,5 @@
+*.vcxproj.user
+*.v12.suo
+*.sdf
+*.opensdf
+*.dgml
diff --git a/builds/msvc/vs2013/obelisk/obelisk.props b/builds/msvc/vs2013/obelisk/obelisk.props
new file mode 100644
index 0000000..47cfa0f
--- /dev/null
+++ b/builds/msvc/vs2013/obelisk/obelisk.props
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <_PropertySheetDisplayName>Obelisk Library Common Settings</_PropertySheetDisplayName>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ <RunCodeAnalysis>false</RunCodeAnalysis>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\include\;%(AdditionalIncludeDirectories);$(ProjectDir)..\..\..\..\..\libbitcoin\include\;$(ProjectDir)..\..\..\..\..\czmqpp\include\;$(ProjectDir)..\..\..\..\..\czmq\include\;$(ProjectDir)..\..\..\..\..\libzmq\include\;(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <DisableSpecificWarnings>4290;4275;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <EnablePREfast>false</EnablePREfast>
+ <PreprocessorDefinitions>LEVELDB_ENABLED;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>libbitcoin.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(ConfigurationType)'=='StaticLibrary'">
+ <ClCompile>
+ <PreprocessorDefinitions>LIBCONFIG_STATIC;LIBCONFIGXX_STATIC;ZMQ_STATIC;LIBCZMQ_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="$(Configuration.IndexOf('Release')) != -1">
+ <ClCompile>
+ <PreprocessorDefinitions>BITCOIN_DISABLE_ASSERTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ </ItemDefinitionGroup>
+
+ <Target Name="LinkageInfo" BeforeTargets="PrepareForBuild">
+ <Message Text="Linkage-libconfig : $(Linkage-libconfig)" Importance="high"/>
+ <Message Text="Linkage-zlib : $(Linkage-zlib)" Importance="high"/>
+ <Message Text="Linkage-openssl : $(Linkage-openssl)" Importance="high"/>
+ </Target>
+
+</Project>
diff --git a/builds/msvc/vs2013/obelisk/obelisk.vcxproj b/builds/msvc/vs2013/obelisk/obelisk.vcxproj
new file mode 100644
index 0000000..b9617a1
--- /dev/null
+++ b/builds/msvc/vs2013/obelisk/obelisk.vcxproj
@@ -0,0 +1,288 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{B0BB6841-1FA9-4E09-8672-5B5419971EF6}</ProjectGuid>
+ <ProjectName>obelisk</ProjectName>
+ <RootNamespace>obelisk12</RootNamespace>
+ </PropertyGroup>
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="DebugDLL|Win32">
+ <Configuration>DebugDLL</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseDLL|Win32">
+ <Configuration>ReleaseDLL</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="DebugDLL|x64">
+ <Configuration>DebugDLL</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseDLL|x64">
+ <Configuration>ReleaseDLL</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="DebugLTCG|Win32">
+ <Configuration>DebugLTCG</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseLTCG|Win32">
+ <Configuration>ReleaseLTCG</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="DebugLTCG|x64">
+ <Configuration>DebugLTCG</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseLTCG|x64">
+ <Configuration>ReleaseLTCG</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="DebugLIB|Win32">
+ <Configuration>DebugLIB</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseLIB|Win32">
+ <Configuration>ReleaseLIB</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="DebugLIB|x64">
+ <Configuration>DebugLIB</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseLIB|x64">
+ <Configuration>ReleaseLIB</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Configuration">
+ <PlatformToolset>CTP_Nov2013</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugLTCG|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLTCG|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugLTCG|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLTCG|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugLIB|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLIB|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugLIB|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLIB|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(ProjectDir)$(ProjectName).props" />
+ <Import Project="$(ProjectDir)..\properties\DynamicDebug.props" />
+ <Import Project="$(ProjectDir)..\properties\Win32.props" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(ProjectDir)$(ProjectName).props" />
+ <Import Project="$(ProjectDir)..\properties\DynamicRelease.props" />
+ <Import Project="$(ProjectDir)..\properties\Win32.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(ProjectDir)$(ProjectName).props" />
+ <Import Project="$(ProjectDir)..\properties\DynamicDebug.props" />
+ <Import Project="$(ProjectDir)..\properties\x64.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(ProjectDir)$(ProjectName).props" />
+ <Import Project="$(ProjectDir)..\properties\DynamicRelease.props" />
+ <Import Project="$(ProjectDir)..\properties\x64.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugLTCG|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(ProjectDir)$(ProjectName).props" />
+ <Import Project="$(ProjectDir)..\properties\StaticDebugLinkTimeCodeGeneration.props" />
+ <Import Project="$(ProjectDir)..\properties\Win32.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLTCG|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(ProjectDir)$(ProjectName).props" />
+ <Import Project="$(ProjectDir)..\properties\StaticReleaseLinkTimeCodeGeneration.props" />
+ <Import Project="$(ProjectDir)..\properties\Win32.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugLTCG|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(ProjectDir)$(ProjectName).props" />
+ <Import Project="$(ProjectDir)..\properties\StaticDebugLinkTimeCodeGeneration.props" />
+ <Import Project="$(ProjectDir)..\properties\x64.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLTCG|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(ProjectDir)$(ProjectName).props" />
+ <Import Project="$(ProjectDir)..\properties\StaticReleaseLinkTimeCodeGeneration.props" />
+ <Import Project="$(ProjectDir)..\properties\x64.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugLIB|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(ProjectDir)$(ProjectName).props" />
+ <Import Project="$(ProjectDir)..\properties\StaticDebug.props" />
+ <Import Project="$(ProjectDir)..\properties\Win32.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLIB|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(ProjectDir)$(ProjectName).props" />
+ <Import Project="$(ProjectDir)..\properties\StaticRelease.props" />
+ <Import Project="$(ProjectDir)..\properties\Win32.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugLIB|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(ProjectDir)$(ProjectName).props" />
+ <Import Project="$(ProjectDir)..\properties\StaticDebug.props" />
+ <Import Project="$(ProjectDir)..\properties\x64.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLIB|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(ProjectDir)$(ProjectName).props" />
+ <Import Project="$(ProjectDir)..\properties\StaticRelease.props" />
+ <Import Project="$(ProjectDir)..\properties\x64.props" />
+ </ImportGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugLTCG|Win32'">
+ <Linkage-libconfig>ltcg</Linkage-libconfig>
+ <Linkage-zlib>ltcg</Linkage-zlib>
+ <Linkage-openssl>ltcg</Linkage-openssl>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLTCG|Win32'">
+ <Linkage-libconfig>ltcg</Linkage-libconfig>
+ <Linkage-zlib>ltcg</Linkage-zlib>
+ <Linkage-openssl>ltcg</Linkage-openssl>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugLTCG|x64'">
+ <Linkage-libconfig>ltcg</Linkage-libconfig>
+ <Linkage-zlib>ltcg</Linkage-zlib>
+ <Linkage-openssl>ltcg</Linkage-openssl>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLTCG|x64'">
+ <Linkage-libconfig>ltcg</Linkage-libconfig>
+ <Linkage-zlib>ltcg</Linkage-zlib>
+ <Linkage-openssl>ltcg</Linkage-openssl>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugLIB|Win32'">
+ <Linkage-libconfig>static</Linkage-libconfig>
+ <Linkage-zlib>static</Linkage-zlib>
+ <Linkage-openssl>static</Linkage-openssl>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLIB|Win32'">
+ <Linkage-libconfig>static</Linkage-libconfig>
+ <Linkage-zlib>static</Linkage-zlib>
+ <Linkage-openssl>static</Linkage-openssl>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugLIB|x64'">
+ <Linkage-libconfig>static</Linkage-libconfig>
+ <Linkage-zlib>static</Linkage-zlib>
+ <Linkage-openssl>static</Linkage-openssl>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLIB|x64'">
+ <Linkage-libconfig>static</Linkage-libconfig>
+ <Linkage-zlib>static</Linkage-zlib>
+ <Linkage-openssl>static</Linkage-openssl>
+ </PropertyGroup>
+ <ItemGroup>
+ <None Include="packages.config" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\client\backend.cpp" />
+ <ClCompile Include="..\..\..\..\src\client\interface\client_blockchain.cpp" />
+ <ClCompile Include="..\..\..\..\src\client\interface\client_fetch_x.cpp" />
+ <ClCompile Include="..\..\..\..\src\client\interface\client_interface.cpp" />
+ <ClCompile Include="..\..\..\..\src\client\interface\client_protocol.cpp" />
+ <ClCompile Include="..\..\..\..\src\client\interface\client_transaction_pool.cpp" />
+ <ClCompile Include="..\..\..\..\src\message.cpp" />
+ <ClCompile Include="..\..\..\..\src\worker\config.cpp" />
+ <ClCompile Include="..\..\..\..\src\worker\echo.cpp" />
+ <ClCompile Include="..\..\..\..\src\worker\main.cpp" />
+ <ClCompile Include="..\..\..\..\src\worker\node_impl.cpp" />
+ <ClCompile Include="..\..\..\..\src\worker\publisher.cpp" />
+ <ClCompile Include="..\..\..\..\src\worker\service\blockchain.cpp" />
+ <ClCompile Include="..\..\..\..\src\worker\service\fetch_x.cpp" />
+ <ClCompile Include="..\..\..\..\src\worker\service\fullnode.cpp" />
+ <ClCompile Include="..\..\..\..\src\worker\service\protocol.cpp" />
+ <ClCompile Include="..\..\..\..\src\worker\service\transaction_pool.cpp" />
+ <ClCompile Include="..\..\..\..\src\worker\subscribe_manager.cpp" />
+ <ClCompile Include="..\..\..\..\src\worker\worker.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\include\obelisk\client\backend.hpp" />
+ <ClInclude Include="..\..\..\..\include\obelisk\client\blockchain.hpp" />
+ <ClInclude Include="..\..\..\..\include\obelisk\client\interface.hpp" />
+ <ClInclude Include="..\..\..\..\include\obelisk\client\protocol.hpp" />
+ <ClInclude Include="..\..\..\..\include\obelisk\client\transaction_pool.hpp" />
+ <ClInclude Include="..\..\..\..\include\obelisk\message.hpp" />
+ <ClInclude Include="..\..\..\..\include\obelisk\obelisk.hpp" />
+ <ClInclude Include="..\..\..\..\src\client\interface\client_fetch_x.hpp" />
+ <ClInclude Include="..\..\..\..\src\client\interface\client_util.hpp" />
+ <ClInclude Include="..\..\..\..\src\worker\config.hpp" />
+ <ClInclude Include="..\..\..\..\src\worker\echo.hpp" />
+ <ClInclude Include="..\..\..\..\src\worker\node_impl.hpp" />
+ <ClInclude Include="..\..\..\..\src\worker\publisher.hpp" />
+ <ClInclude Include="..\..\..\..\src\worker\service\blockchain.hpp" />
+ <ClInclude Include="..\..\..\..\src\worker\service\fetch_x.hpp" />
+ <ClInclude Include="..\..\..\..\src\worker\service\fullnode.hpp" />
+ <ClInclude Include="..\..\..\..\src\worker\service\protocol.hpp" />
+ <ClInclude Include="..\..\..\..\src\worker\service\transaction_pool.hpp" />
+ <ClInclude Include="..\..\..\..\src\worker\service\util.hpp" />
+ <ClInclude Include="..\..\..\..\src\worker\subscribe_manager.hpp" />
+ <ClInclude Include="..\..\..\..\src\worker\worker.hpp" />
+ </ItemGroup>
+ <!-- Move these? -->
+ <Import Project="..\..\..\..\..\..\nuget\LevelDB.1.16.0.5\build\native\LevelDB.props" Condition="Exists('..\..\..\..\..\..\nuget\LevelDB.1.16.0.5\build\native\LevelDB.props')" />
+ <Import Project="..\..\..\..\..\..\nuget\Snappy.1.1.1.7\build\native\Snappy.props" Condition="Exists('..\..\..\..\..\..\nuget\Snappy.1.1.1.7\build\native\Snappy.props')" />
+ <Import Project="..\..\..\..\..\..\nuget\Crc32C.1.0.4\build\native\Crc32C.props" Condition="Exists('..\..\..\..\..\..\nuget\Crc32C.1.0.4\build\native\Crc32C.props')" />
+ <Import Project="..\..\..\..\..\..\nuget\openssl.1.0.1.24\build\native\openssl.props" Condition="Exists('..\..\..\..\..\..\nuget\openssl.1.0.1.24\build\native\openssl.props')" />
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets" />
+ <ImportGroup Label="ExtensionSettings">
+ <Import Project="..\..\..\..\..\..\nuget\boost.1.55.0.16\build\native\boost.targets" Condition="Exists('..\..\..\..\..\..\nuget\boost.1.55.0.16\build\native\boost.targets')" />
+ <Import Project="..\..\..\..\..\..\nuget\libconfig.1.4.9.2\build\native\package.targets" Condition="Exists('..\..\..\..\..\..\nuget\libconfig.1.4.9.2\build\native\package.targets')" />
+ <Import Project="..\..\..\..\..\..\nuget\openssl.redist.1.0.1.24\build\native\openssl.redist.targets" Condition="Exists('..\..\..\..\..\..\nuget\openssl.redist.1.0.1.24\build\native\openssl.redist.targets')" />
+ <Import Project="..\..\..\..\..\..\nuget\openssl.1.0.1.24\build\native\openssl.targets" Condition="Exists('..\..\..\..\..\..\nuget\openssl.1.0.1.24\build\native\openssl.targets')" />
+ <Import Project="..\..\..\..\..\..\nuget\zlib.redist.1.2.8.6\build\native\zlib.redist.targets" Condition="Exists('..\..\..\..\..\..\nuget\zlib.redist.1.2.8.6\build\native\zlib.redist.targets')" />
+ <Import Project="..\..\..\..\..\..\nuget\zlib.1.2.8.6\build\native\zlib.targets" Condition="Exists('..\..\..\..\..\..\nuget\zlib.1.2.8.6\build\native\zlib.targets')" />
+ </ImportGroup>
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+ <PropertyGroup>
+ <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+ </PropertyGroup>
+ <Error Condition="!Exists('..\..\..\..\..\..\nuget\libconfig.1.4.9.2\build\native\package.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\..\..\nuget\libconfig.1.4.9.2\build\native\package.targets'))" />
+ <Error Condition="!Exists('..\..\..\..\..\..\nuget\boost.1.55.0.16\build\native\boost.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\..\..\nuget\boost.1.55.0.16\build\native\boost.targets'))" />
+ <Error Condition="!Exists('..\..\..\..\..\..\nuget\openssl.redist.1.0.1.24\build\native\openssl.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\..\..\nuget\openssl.redist.1.0.1.24\build\native\openssl.redist.targets'))" />
+ <Error Condition="!Exists('..\..\..\..\..\..\nuget\openssl.1.0.1.24\build\native\openssl.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\..\..\nuget\openssl.1.0.1.24\build\native\openssl.props'))" />
+ <Error Condition="!Exists('..\..\..\..\..\..\nuget\openssl.1.0.1.24\build\native\openssl.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\..\..\nuget\openssl.1.0.1.24\build\native\openssl.targets'))" />
+ <Error Condition="!Exists('..\..\..\..\..\..\nuget\Crc32C.1.0.4\build\native\Crc32C.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\..\..\nuget\Crc32C.1.0.4\build\native\Crc32C.props'))" />
+ <Error Condition="!Exists('..\..\..\..\..\..\nuget\Snappy.1.1.1.7\build\native\Snappy.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\..\..\nuget\Snappy.1.1.1.7\build\native\Snappy.props'))" />
+ <Error Condition="!Exists('..\..\..\..\..\..\nuget\LevelDB.1.16.0.5\build\native\LevelDB.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\..\..\nuget\LevelDB.1.16.0.5\build\native\LevelDB.props'))" />
+ <Error Condition="!Exists('..\..\..\..\..\..\nuget\zlib.redist.1.2.8.6\build\native\zlib.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\..\..\nuget\zlib.redist.1.2.8.6\build\native\zlib.redist.targets'))" />
+ <Error Condition="!Exists('..\..\..\..\..\..\nuget\zlib.1.2.8.6\build\native\zlib.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\..\..\nuget\zlib.1.2.8.6\build\native\zlib.targets'))" />
+ </Target>
+</Project> \ No newline at end of file
diff --git a/builds/msvc/vs2013/obelisk/obelisk.vcxproj.filters b/builds/msvc/vs2013/obelisk/obelisk.vcxproj.filters
new file mode 100644
index 0000000..d4bc747
--- /dev/null
+++ b/builds/msvc/vs2013/obelisk/obelisk.vcxproj.filters
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <None Include="packages.config" />
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="src">
+ <UniqueIdentifier>{559ba96f-087f-47ca-a18d-f04da96b961a}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="include">
+ <UniqueIdentifier>{4f4c1fc2-9930-4c62-a158-572bd1e5c542}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\worker">
+ <UniqueIdentifier>{82823cc2-0267-4669-985c-48b73fe1a4e5}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\worker\service">
+ <UniqueIdentifier>{4fe68349-e5e5-4bd4-b275-b8edf595a296}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\client">
+ <UniqueIdentifier>{57e5532d-63a4-44ac-a3a4-016f7eb79c04}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\client\interface">
+ <UniqueIdentifier>{0c2d2de9-8e95-4ab4-9be9-163f4f8f01fb}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="include\client">
+ <UniqueIdentifier>{ec10c881-3efc-477c-ba13-c69d398876eb}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\message.cpp">
+ <Filter>src</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\worker\config.cpp">
+ <Filter>src\worker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\worker\echo.cpp">
+ <Filter>src\worker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\worker\main.cpp">
+ <Filter>src\worker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\worker\node_impl.cpp">
+ <Filter>src\worker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\worker\publisher.cpp">
+ <Filter>src\worker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\worker\subscribe_manager.cpp">
+ <Filter>src\worker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\worker\worker.cpp">
+ <Filter>src\worker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\worker\service\blockchain.cpp">
+ <Filter>src\worker\service</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\worker\service\fetch_x.cpp">
+ <Filter>src\worker\service</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\worker\service\fullnode.cpp">
+ <Filter>src\worker\service</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\worker\service\protocol.cpp">
+ <Filter>src\worker\service</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\worker\service\transaction_pool.cpp">
+ <Filter>src\worker\service</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\client\backend.cpp">
+ <Filter>src\client</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\native\src\leveldb-single-file.cpp" />
+ <ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\native\src\snappy-single-file.cpp" />
+ <ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\native\src\crc32c.cpp" />
+ <ClCompile Include="..\..\..\..\src\client\interface\client_blockchain.cpp">
+ <Filter>src\client\interface</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\client\interface\client_fetch_x.cpp">
+ <Filter>src\client\interface</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\client\interface\client_interface.cpp">
+ <Filter>src\client\interface</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\client\interface\client_protocol.cpp">
+ <Filter>src\client\interface</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\client\interface\client_transaction_pool.cpp">
+ <Filter>src\client\interface</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\worker\subscribe_manager.hpp">
+ <Filter>src\worker</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\src\worker\worker.hpp">
+ <Filter>src\worker</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\src\worker\config.hpp">
+ <Filter>src\worker</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\src\worker\echo.hpp">
+ <Filter>src\worker</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\src\worker\node_impl.hpp">
+ <Filter>src\worker</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\src\worker\publisher.hpp">
+ <Filter>src\worker</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\src\worker\service\util.hpp">
+ <Filter>src\worker\service</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\src\worker\service\blockchain.hpp">
+ <Filter>src\worker\service</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\src\worker\service\fetch_x.hpp">
+ <Filter>src\worker\service</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\src\worker\service\fullnode.hpp">
+ <Filter>src\worker\service</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\src\worker\service\protocol.hpp">
+ <Filter>src\worker\service</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\src\worker\service\transaction_pool.hpp">
+ <Filter>src\worker\service</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\obelisk\obelisk.hpp">
+ <Filter>include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\obelisk\message.hpp">
+ <Filter>include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\obelisk\client\blockchain.hpp">
+ <Filter>include\client</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\obelisk\client\interface.hpp">
+ <Filter>include\client</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\obelisk\client\protocol.hpp">
+ <Filter>include\client</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\obelisk\client\transaction_pool.hpp">
+ <Filter>include\client</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\obelisk\client\backend.hpp">
+ <Filter>include\client</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\src\client\interface\client_fetch_x.hpp">
+ <Filter>src\client\interface</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\src\client\interface\client_util.hpp">
+ <Filter>src\client\interface</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/builds/msvc/vs2013/obelisk/packages.config b/builds/msvc/vs2013/obelisk/packages.config
new file mode 100644
index 0000000..2567b4f
--- /dev/null
+++ b/builds/msvc/vs2013/obelisk/packages.config
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="boost" version="1.55.0.16" targetFramework="Native" />
+ <package id="Crc32C" version="1.0.4" targetFramework="Native" />
+ <package id="LevelDB" version="1.16.0.5" targetFramework="Native" />
+ <package id="libconfig" version="1.4.9.2" targetFramework="Native" />
+ <package id="openssl" version="1.0.1.24" targetFramework="Native" />
+ <package id="openssl.redist" version="1.0.1.24" targetFramework="Native" />
+ <package id="Snappy" version="1.1.1.7" targetFramework="Native" />
+ <package id="zlib" version="1.2.8.6" targetFramework="Native" />
+ <package id="zlib.redist" version="1.2.8.6" targetFramework="Native" />
+</packages> \ No newline at end of file
diff --git a/builds/msvc/vs2013/properties/Common.props b/builds/msvc/vs2013/properties/Common.props
new file mode 100644
index 0000000..10e0380
--- /dev/null
+++ b/builds/msvc/vs2013/properties/Common.props
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <_PropertySheetDisplayName>Common Settings</_PropertySheetDisplayName>
+ <CharacterSet>Unicode</CharacterSet>
+ <TargetName>$(ProjectName)</TargetName>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <!-- Windows and CRT definitions for unicode. Note that Linux only supports unicode so char is UCS-16. -->
+ <PreprocessorDefinitions>UNICODE;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ </ItemDefinitionGroup>
+
+ <Target Name="ConfigInfo" BeforeTargets="PrepareForBuild">
+ <Message Text="ConfigurationType : $(ConfigurationType)" Importance="high"/>
+ <Message Text="Configuration : $(Configuration)" Importance="high"/>
+ <Message Text="PlatformToolset : $(PlatformToolset)" Importance="high"/>
+ <Message Text="Building..." Importance="high"/>
+ </Target>
+
+</Project> \ No newline at end of file
diff --git a/builds/msvc/vs2013/properties/Debug.props b/builds/msvc/vs2013/properties/Debug.props
new file mode 100644
index 0000000..825321a
--- /dev/null
+++ b/builds/msvc/vs2013/properties/Debug.props
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <_PropertySheetDisplayName>Debug Configuration</_PropertySheetDisplayName>
+ <!-- RootNamespace is used to deconflict output files from differing project versions. -->
+ <IntDir>$(ProjectDir)..\..\..\..\obj\$(PlatformName)\$(Configuration)\$(RootNamespace)\</IntDir>
+ <OutDir>$(ProjectDir)..\..\..\..\bin\$(PlatformName)\Debug\$(RootNamespace)\</OutDir>
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <ClCompile><DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ImportLibrary>$(ProjectDir)..\..\..\..\bin\$(PlatformName)\Debug\$(RootNamespace)\$(TargetName).imp.lib</ImportLibrary>
+ </Link>
+ </ItemDefinitionGroup>
+
+</Project> \ No newline at end of file
diff --git a/builds/msvc/vs2013/properties/Dynamic.props b/builds/msvc/vs2013/properties/Dynamic.props
new file mode 100644
index 0000000..8f57f13
--- /dev/null
+++ b/builds/msvc/vs2013/properties/Dynamic.props
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <ImportGroup Label="PropertySheets">
+ <Import Project="Common.props" />
+ </ImportGroup>
+
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <_PropertySheetDisplayName>Dynamic Library</_PropertySheetDisplayName>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <PreprocessorDefinitions>_DLL;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ </ItemDefinitionGroup>
+
+</Project> \ No newline at end of file
diff --git a/builds/msvc/vs2013/properties/DynamicDebug.props b/builds/msvc/vs2013/properties/DynamicDebug.props
new file mode 100644
index 0000000..81befdc
--- /dev/null
+++ b/builds/msvc/vs2013/properties/DynamicDebug.props
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <ImportGroup Label="PropertySheets">
+ <Import Project="Dynamic.props" />
+ <Import Project="Debug.props" />
+ </ImportGroup>
+
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <_PropertySheetDisplayName>Dynamic Debug Library</_PropertySheetDisplayName>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <!-- Linking CRT dynamically when building a dynamic library is conventional. -->
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ </ClCompile>
+ </ItemDefinitionGroup>
+
+</Project> \ No newline at end of file
diff --git a/builds/msvc/vs2013/properties/DynamicRelease.props b/builds/msvc/vs2013/properties/DynamicRelease.props
new file mode 100644
index 0000000..1b1de61
--- /dev/null
+++ b/builds/msvc/vs2013/properties/DynamicRelease.props
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <ImportGroup Label="PropertySheets">
+ <Import Project="Dynamic.props" />
+ <Import Project="Release.props" />
+ </ImportGroup>
+
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <_PropertySheetDisplayName>Dynamic Release Library</_PropertySheetDisplayName>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <!-- Linking CRT dynamically when building a dynamic library is conventional. -->
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ </ClCompile>
+ </ItemDefinitionGroup>
+
+</Project> \ No newline at end of file
diff --git a/builds/msvc/vs2013/properties/LinkTimeCodeGeneration.props b/builds/msvc/vs2013/properties/LinkTimeCodeGeneration.props
new file mode 100644
index 0000000..42708b5
--- /dev/null
+++ b/builds/msvc/vs2013/properties/LinkTimeCodeGeneration.props
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <_PropertySheetDisplayName>Link Time Code Generation Library</_PropertySheetDisplayName>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+
+ <!-- This overrides Debug.props->LinkIncremental and therefore this reference must always be set after Debug.props is included. -->
+ <LinkIncremental>false</LinkIncremental>
+ </ClCompile>
+ <Link>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ </Link>
+ <Lib>
+ <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
+ </Lib>
+ </ItemDefinitionGroup>
+
+</Project> \ No newline at end of file
diff --git a/builds/msvc/vs2013/properties/Release.props b/builds/msvc/vs2013/properties/Release.props
new file mode 100644
index 0000000..aff972f
--- /dev/null
+++ b/builds/msvc/vs2013/properties/Release.props
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <_PropertySheetDisplayName>Release Configuration</_PropertySheetDisplayName>
+ <!-- RootNamespace is used to deconflict output files from differing project versions. -->
+ <IntDir>$(ProjectDir)..\..\..\..\obj\$(PlatformName)\$(Configuration)\$(RootNamespace)\</IntDir>
+ <OutDir>$(ProjectDir)..\..\..\..\bin\$(PlatformName)\Release\$(RootNamespace)\</OutDir>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <AdditionalOptions>/Oy- %(AdditionalOptions)</AdditionalOptions>
+ <!--<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>-->
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <MinimalRebuild>false</MinimalRebuild>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <!--<GenerateDebugInformation>true</GenerateDebugInformation>-->
+ <ImportLibrary>$(ProjectDir)..\..\..\..\bin\$(PlatformName)\Release\$(RootNamespace)\$(TargetName).imp.lib</ImportLibrary>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+ <ClCompile>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ </ClCompile>
+ </ItemDefinitionGroup>
+
+</Project> \ No newline at end of file
diff --git a/builds/msvc/vs2013/properties/Static.props b/builds/msvc/vs2013/properties/Static.props
new file mode 100644
index 0000000..9b30a13
--- /dev/null
+++ b/builds/msvc/vs2013/properties/Static.props
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <ImportGroup Label="PropertySheets">
+ <Import Project="Common.props" />
+ </ImportGroup>
+
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <_PropertySheetDisplayName>Static Library</_PropertySheetDisplayName>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ </ItemDefinitionGroup>
+
+</Project> \ No newline at end of file
diff --git a/builds/msvc/vs2013/properties/StaticDebug.props b/builds/msvc/vs2013/properties/StaticDebug.props
new file mode 100644
index 0000000..f0693f1
--- /dev/null
+++ b/builds/msvc/vs2013/properties/StaticDebug.props
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <ImportGroup Label="PropertySheets">
+ <Import Project="Static.props" />
+ <Import Project="Debug.props" />
+ </ImportGroup>
+
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <_PropertySheetDisplayName>Static Debug Library</_PropertySheetDisplayName>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <!-- Linking CRT statically when building a static library is conventional. -->
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ </ClCompile>
+ </ItemDefinitionGroup>
+
+</Project> \ No newline at end of file
diff --git a/builds/msvc/vs2013/properties/StaticDebugLinkTimeCodeGeneration.props b/builds/msvc/vs2013/properties/StaticDebugLinkTimeCodeGeneration.props
new file mode 100644
index 0000000..18b017c
--- /dev/null
+++ b/builds/msvc/vs2013/properties/StaticDebugLinkTimeCodeGeneration.props
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <ImportGroup Label="PropertySheets">
+ <Import Project="Debug.props" />
+ <Import Project="StaticLinkTimeCodeGeneration.props" />
+ </ImportGroup>
+
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <_PropertySheetDisplayName>Static Debug Link Time Code Generation Library</_PropertySheetDisplayName>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <!-- Linking CRT statically when building a static library is conventional. -->
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ </ClCompile>
+ </ItemDefinitionGroup>
+
+</Project> \ No newline at end of file
diff --git a/builds/msvc/vs2013/properties/StaticLinkTimeCodeGeneration.props b/builds/msvc/vs2013/properties/StaticLinkTimeCodeGeneration.props
new file mode 100644
index 0000000..8009311
--- /dev/null
+++ b/builds/msvc/vs2013/properties/StaticLinkTimeCodeGeneration.props
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <ImportGroup Label="PropertySheets">
+ <Import Project="Static.props" />
+ <Import Project="LinkTimeCodeGeneration.props" />
+ </ImportGroup>
+
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <_PropertySheetDisplayName>Static Link Time Code Generation Library</_PropertySheetDisplayName>
+
+ <!-- This overrides Static.props->Common.props->TargetName and therefore this
+ reference must always be set after Static.props->Common.props is included. -->
+ <TargetName>$(TargetName).ltcg</TargetName>
+ </PropertyGroup>
+
+</Project> \ No newline at end of file
diff --git a/builds/msvc/vs2013/properties/StaticRelease.props b/builds/msvc/vs2013/properties/StaticRelease.props
new file mode 100644
index 0000000..d7a6058
--- /dev/null
+++ b/builds/msvc/vs2013/properties/StaticRelease.props
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <ImportGroup Label="PropertySheets">
+ <Import Project="Static.props" />
+ <Import Project="Release.props" />
+ </ImportGroup>
+
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <_PropertySheetDisplayName>Static Release Library</_PropertySheetDisplayName>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <!-- Linking CRT statically when building a static library is conventional. -->
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ </ClCompile>
+ </ItemDefinitionGroup>
+
+</Project> \ No newline at end of file
diff --git a/builds/msvc/vs2013/properties/StaticReleaseLinkTimeCodeGeneration.props b/builds/msvc/vs2013/properties/StaticReleaseLinkTimeCodeGeneration.props
new file mode 100644
index 0000000..668a9e9
--- /dev/null
+++ b/builds/msvc/vs2013/properties/StaticReleaseLinkTimeCodeGeneration.props
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <ImportGroup Label="PropertySheets">
+ <Import Project="Release.props" />
+ <Import Project="StaticLinkTimeCodeGeneration.props" />
+ </ImportGroup>
+
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <_PropertySheetDisplayName>Static Release Link Time Code Generation Library</_PropertySheetDisplayName>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <!-- Linking CRT statically when building a static library is conventional. -->
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ </ClCompile>
+ </ItemDefinitionGroup>
+
+</Project> \ No newline at end of file
diff --git a/builds/msvc/vs2013/properties/Win32.props b/builds/msvc/vs2013/properties/Win32.props
new file mode 100644
index 0000000..bc64e84
--- /dev/null
+++ b/builds/msvc/vs2013/properties/Win32.props
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <_PropertySheetDisplayName>Win32 Settings</_PropertySheetDisplayName>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <PreprocessorDefinitions>WIN32;_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <Link>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ <Lib>
+ <AdditionalOptions>/MACHINE:X86 %(AdditionalOptions)</AdditionalOptions>
+ </Lib>
+ </ItemDefinitionGroup>
+
+</Project> \ No newline at end of file
diff --git a/builds/msvc/vs2013/properties/x64.props b/builds/msvc/vs2013/properties/x64.props
new file mode 100644
index 0000000..1c750d6
--- /dev/null
+++ b/builds/msvc/vs2013/properties/x64.props
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <_PropertySheetDisplayName>x64 Settings</_PropertySheetDisplayName>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <!-- Note that Win64 defines may cause WIN32 to become defined when using windows headers,
+ but _WIN32 implies Windows 32 bit or above. If the standard headers are not included
+ these are sometimes required even for 64 bit builds and should never cause harm there.-->
+ <PreprocessorDefinitions>WIN32;_WIN32;WIN64;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <Link>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ <Lib>
+ <AdditionalOptions>/MACHINE:X64 %(AdditionalOptions)</AdditionalOptions>
+ </Lib>
+ </ItemDefinitionGroup>
+
+</Project> \ No newline at end of file
diff --git a/src/Makefile.am b/src/Makefile.am
index 04b7dcd..9727c38 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -6,11 +6,11 @@ lib_LTLIBRARIES = libobelisk.la
libobelisk_la_SOURCES = \
message.cpp \
client/backend.cpp \
- client/interface/interface.cpp \
- client/interface/fetch_x.cpp \
- client/interface/blockchain.cpp \
- client/interface/protocol.cpp \
- client/interface/transaction_pool.cpp
+ client/interface/client_interface.cpp \
+ client/interface/client_fetch_x.cpp \
+ client/interface/client_blockchain.cpp \
+ client/interface/client_protocol.cpp \
+ client/interface/client_transaction_pool.cpp
bin_PROGRAMS = obworker
diff --git a/src/client/backend.cpp b/src/client/backend.cpp
index 8292c10..0662feb 100644
--- a/src/client/backend.cpp
+++ b/src/client/backend.cpp
@@ -59,11 +59,11 @@ void backend_cluster::send(const outgoing_message& message)
void backend_cluster::update()
{
- // Poll socket for a reply, with timeout
+ // Poll socket for a reply, with timeout
czmqpp::poller poller(socket_);
BITCOIN_ASSERT(poller.self());
czmqpp::socket which = poller.wait(0);
- // If we got a reply, process it
+ // If we got a reply, process it
receive_incoming();
// Finally resend any expired requests that we didn't get
// a response to yet.
diff --git a/src/client/interface/blockchain.cpp b/src/client/interface/client_blockchain.cpp
index 7c390ff..7947af1 100644
--- a/src/client/interface/blockchain.cpp
+++ b/src/client/interface/client_blockchain.cpp
@@ -1,7 +1,7 @@
#include <obelisk/client/blockchain.hpp>
-#include "fetch_x.hpp"
-#include "util.hpp"
+#include "client_fetch_x.hpp"
+#include "client_util.hpp"
namespace obelisk {
diff --git a/src/client/interface/fetch_x.cpp b/src/client/interface/client_fetch_x.cpp
index 8079098..21714ff 100644
--- a/src/client/interface/fetch_x.cpp
+++ b/src/client/interface/client_fetch_x.cpp
@@ -1,6 +1,6 @@
-#include "fetch_x.hpp"
+#include "client_fetch_x.hpp"
-#include "util.hpp"
+#include "client_util.hpp"
namespace obelisk {
diff --git a/src/client/interface/fetch_x.hpp b/src/client/interface/client_fetch_x.hpp
index 723462a..723462a 100644
--- a/src/client/interface/fetch_x.hpp
+++ b/src/client/interface/client_fetch_x.hpp
diff --git a/src/client/interface/interface.cpp b/src/client/interface/client_interface.cpp
index 607203a..badabfd 100644
--- a/src/client/interface/interface.cpp
+++ b/src/client/interface/client_interface.cpp
@@ -1,8 +1,8 @@
#include <obelisk/client/interface.hpp>
#include <bitcoin/bitcoin.hpp>
-#include "fetch_x.hpp"
-#include "util.hpp"
+#include "client_fetch_x.hpp"
+#include "client_util.hpp"
namespace obelisk {
diff --git a/src/client/interface/protocol.cpp b/src/client/interface/client_protocol.cpp
index d502d82..f0df6f7 100644
--- a/src/client/interface/protocol.cpp
+++ b/src/client/interface/client_protocol.cpp
@@ -1,6 +1,6 @@
#include <obelisk/client/protocol.hpp>
-#include "util.hpp"
+#include "client_util.hpp"
namespace obelisk {
diff --git a/src/client/interface/transaction_pool.cpp b/src/client/interface/client_transaction_pool.cpp
index 8c5931c..cbc0fd2 100644
--- a/src/client/interface/transaction_pool.cpp
+++ b/src/client/interface/client_transaction_pool.cpp
@@ -1,7 +1,7 @@
#include <obelisk/client/transaction_pool.hpp>
-#include "fetch_x.hpp"
-#include "util.hpp"
+#include "client_fetch_x.hpp"
+#include "client_util.hpp"
namespace obelisk {
diff --git a/src/client/interface/util.hpp b/src/client/interface/client_util.hpp
index c8e2c2e..c8e2c2e 100644
--- a/src/client/interface/util.hpp
+++ b/src/client/interface/client_util.hpp
diff --git a/src/worker/config.cpp b/src/worker/config.cpp
index 4cf2285..e6d6051 100644
--- a/src/worker/config.cpp
+++ b/src/worker/config.cpp
@@ -1,5 +1,7 @@
#include "config.hpp"
+#include <iostream>
+#include <boost/filesystem.hpp>
#include <boost/lexical_cast.hpp>
#include <libconfig.h++>
#include "echo.hpp"
@@ -11,7 +13,7 @@ void load_nodes(const libconfig::Setting& root, config_type& config)
try
{
const libconfig::Setting& setting = root["nodes"];
- for (size_t i = 0; i < setting.getLength(); ++i)
+ for (int i = 0; i < setting.getLength(); ++i)
{
const libconfig::Setting& node_setting = setting[i];
node_config_object node;
@@ -32,7 +34,7 @@ void load_whitelist(const libconfig::Setting& root, config_type& config)
try
{
const libconfig::Setting& setting = root["whitelist"];
- for (size_t i = 0; i < setting.getLength(); ++i)
+ for (int i = 0; i < setting.getLength(); ++i)
{
std::string address = (const char*)setting[i];
config.whitelist.push_back(address);
@@ -46,20 +48,68 @@ void load_whitelist(const libconfig::Setting& root, config_type& config)
catch (const libconfig::SettingNotFoundException&) {}
}
-void load_config(config_type& config, const std::string& filename)
+// Address string cross-compile as char and std::string are non-unicode on
+// Windows, which pre-dates unicode so char is ANSI and wchar_t is UCS-16.
+// TODO: centralize this in cross-compile header(s).
+#if defined(_WIN32) && defined(UNICODE)
+#define tmain wmain
+typedef wchar_t tchar;
+typedef std::wstring tstring;
+typedef boost::filesystem::wpath tpath;
+#else
+#define tmain main
+#define L
+typedef char tchar;
+typedef std::string tstring;
+typedef boost::filesystem::path tpath;
+#endif
+
+#ifdef _WIN32
+#include <shlobj.h>
+#include <windows.h>
+tstring system_config_directory()
+{
+ // Use explicitly wide char functions and compile for unicode.
+ tchar app_data_path[MAX_PATH];
+ auto result = SHGetFolderPathW(NULL, CSIDL_COMMON_APPDATA, NULL,
+ SHGFP_TYPE_CURRENT, app_data_path);
+ return tstring(SUCCEEDED(result) ? app_data_path : L"");
+}
+#else
+tstring system_config_directory()
+{
+ return tstring(SYSCONFDIR);
+}
+#endif
+
+void set_config_path(libconfig::Config& configuration,
+ const tpath& config_path)
{
- // Load values from config file.
- echo() << "Using config file: " << filename;
- libconfig::Config cfg;
// Ignore error if unable to read config file.
try
{
- cfg.readFile(filename.c_str());
+ // libconfig is ANSI/MBCS on Windows - no Unicode support.
+ // This translates the path from Unicode to a "generic" path in
+ // ANSI/MBCS, which can result in failures.
+ configuration.readFile(config_path.generic_string().c_str());
}
catch (const libconfig::FileIOException&) {}
catch (const libconfig::ParseException&) {}
- // Read off values
- const libconfig::Setting& root = cfg.getRoot();
+}
+
+void load_config(config_type& config, tpath& config_path)
+{
+ // Load values from config file.
+ echo() << "Using config file: " << config_path;
+
+ libconfig::Config configuration;
+ set_config_path(configuration, config_path);
+
+ // Read off values.
+ // libconfig is ANSI/MBCS on Windows - no Unicode support.
+ // This reads ANSI/MBCS values from XML. If they are UTF-8 (and above the
+ // ASCII band) the values will be misinterpreted upon use.
+ const libconfig::Setting& root = configuration.getRoot();
root.lookupValue("output-file", config.output_file);
root.lookupValue("error-file", config.error_file);
root.lookupValue("blockchain-path", config.blockchain_path);
diff --git a/src/worker/config.hpp b/src/worker/config.hpp
index 2cc61a3..5d51a0e 100644
--- a/src/worker/config.hpp
+++ b/src/worker/config.hpp
@@ -4,6 +4,22 @@
#include <map>
#include <string>
#include <vector>
+#include <stdint.h>
+#include <boost/filesystem.hpp>
+
+// Address string cross-compile as char and std::string are non-unicode on
+// Windows, which pre-dates unicode so char is ANSI and wchar_t is UCS-16.
+// TODO: centralize this in cross-compile header(s).
+#if defined(_WIN32) && defined(UNICODE)
+typedef wchar_t tchar;
+typedef std::wstring tstring;
+typedef boost::filesystem::wpath tpath;
+#else
+#define L
+typedef char tchar;
+typedef std::string tstring;
+typedef boost::filesystem::path tpath;
+#endif
namespace obelisk {
@@ -37,9 +53,10 @@ struct config_type
bool log_requests = false;
};
-void load_config(config_type& config, const std::string& config_path);
+typedef std::map<std::string, std::string> config_map_type;
+void load_config(config_type& config, tpath& config_path);
+tstring system_config_directory();
} // namespace obelisk
-#endif
-
+#endif \ No newline at end of file
diff --git a/src/worker/main.cpp b/src/worker/main.cpp
index 9f93a82..1ea37a5 100644
--- a/src/worker/main.cpp
+++ b/src/worker/main.cpp
@@ -1,6 +1,8 @@
#include <boost/filesystem.hpp>
#include <obelisk/message.hpp>
+#include <bitcoin/bitcoin.hpp>
#include <signal.h>
+#include <string>
#include "echo.hpp"
#include "worker.hpp"
#include "node_impl.hpp"
@@ -11,8 +13,9 @@
#include "service/protocol.hpp"
#include "service/transaction_pool.hpp"
-using namespace bc;
using namespace obelisk;
+using namespace obelisk::bc;
+
using std::placeholders::_1;
using std::placeholders::_2;
@@ -23,17 +26,24 @@ void interrupt_handler(int)
stopped = true;
}
-int main(int argc, char** argv)
+#ifdef _MSC_VER
+// This compiles for all platforms, but there is an aspect of the linux build
+// system that expects to see 'int main(...)' in the source, so need both lines.
+int tmain(int argc, tchar* argv[])
+#else
+int main(int argc, char* argv[])
+#endif
{
config_type config;
- if (argc == 2)
- load_config(config, argv[1]);
- else
- {
- using boost::filesystem::path;
- path conf_filename = path(SYSCONFDIR) / "obelisk" / "worker.cfg";
- load_config(config, conf_filename.native());
- }
+ tpath config_path = argc < 2 ?
+ tpath(system_config_directory()) / "obelisk" / "worker.cfg" :
+ tpath(argv[1]);
+
+ // libconfig is ANSI/MBCS on Windows - no Unicode support.
+ // This translates the path from Unicode to a "generic" path in
+ // ANSI/MBCS, which can result in failures.
+ load_config(config, config_path);
+
echo() << "Press CTRL-C to shut down.";
// Create worker.
request_worker worker;
diff --git a/src/worker/node_impl.cpp b/src/worker/node_impl.cpp
index 5b61b05..cdd1334 100644
--- a/src/worker/node_impl.cpp
+++ b/src/worker/node_impl.cpp
@@ -1,13 +1,14 @@
#include "node_impl.hpp"
#include <future>
+#include <iostream>
#include <boost/lexical_cast.hpp>
#include "echo.hpp"
namespace obelisk {
-using namespace boost::posix_time;
using namespace bc;
+using namespace boost::posix_time;
using std::placeholders::_1;
using std::placeholders::_2;
using std::placeholders::_3;
diff --git a/src/worker/service/fetch_x.cpp b/src/worker/service/fetch_x.cpp
index d733bac..608e0a0 100644
--- a/src/worker/service/fetch_x.cpp
+++ b/src/worker/service/fetch_x.cpp
@@ -28,7 +28,7 @@ bool unwrap_fetch_history_args(
payaddr.set(version_byte, hash);
return true;
}
-bool send_history_result(const std::error_code& ec,
+void send_history_result(const std::error_code& ec,
const blockchain::history_list& history,
const incoming_message& request, queue_send_callback queue_send)
{
diff --git a/src/worker/service/fetch_x.hpp b/src/worker/service/fetch_x.hpp
index bd7ed34..d837c40 100644
--- a/src/worker/service/fetch_x.hpp
+++ b/src/worker/service/fetch_x.hpp
@@ -13,7 +13,7 @@ bool unwrap_fetch_history_args(
bc::payment_address& payaddr, uint32_t& from_height,
const incoming_message& request);
-bool send_history_result(const std::error_code& ec,
+void send_history_result(const std::error_code& ec,
const bc::blockchain::history_list& history,
const incoming_message& request, queue_send_callback queue_send);