I've added Visual Studio solutions for libbitcoin, libwallet, obelisk
and sx. Because of the use of C++11/14 features in much of the code the
projects require the CTP_Nov2013 compiler, which can be downloaded here:
http://www.microsoft.com/en-us/download/details.aspx?id=41151
There are static (default as well as LTCG) LIB and dynamic (DLL)
configurations for x86 and x64 in each project. All compile and link
error/warning free with the exception of a number of warnings on numeric
conversion in the 64 bit builds. I've fixed a number of these. Those
that remain are legitimate issues that also affect Linux builds and
should be dealt with.
There are a few things not yet integrated:
* libbitcoin examples
- haven't gotten to it
* One line of code in libbitcoin::stealth_database::advise_kernel
- deferred non-portable code because of ongoing work in that area
* sx builds the lib and the wallet executable only
- I verified all of the executables but deferred making projects for all
40 of the others.
* libsodium is not linked
- its optional but important to have
Currently it is possible to build and link all of the projects, but I am
linking four dependencies against NuGet packages that were build with
the v110 compiler (VS2012 default). So the current status is proof of
concept only.
Dependencies must be built with either the v120 or compiler (default
VS2013) of the CTP_Nov2013. The necessary boost v120 builds are
published to NuGet, but none of the others are. I will eventually have
all of the dependencies published to NuGet.
Here's the current status of each dependency:
libzmq, czmq, czmqpp
--------------------
I've created the necessary updates and pushed them into the zeromq repo.
I just need to add NuGet packaging for each.
ncurses (sx/wallet)
--------------------
I've forked pdcurses, created builds, packaged and pushed to NuGet.
https://github.com/evoskuil/pdcurses
libconfig (sx/wallet)
--------------------
I've created a repo/builds for libconfig, packaged and pushed to NuGet.
https://github.com/evoskuil/libconfig
boost
--------------------
The various binary dependencies are packaged on NuGet as v120. The
source dependencies are published via NuGet as well.
leveldb, crc32c, snappy
--------------------
These source dependencies are published via NuGet.
libssh2, curl, openssl, zlib
--------------------
These have NuGet packaging for v100 and v110, but not yet v120. If these
are not updated by the time I'm done with the others I'll repackage them
for v120.
libsodum
--------------------
Haven't done anything yet, but I'll incorporate a fork of:
https://github.com/jedisct1/libsodium
The project that I'm working on is shipping on Linux only, but I'm
fairly adept in Windows and Visual Studio. I'm using this as an
opportunity to learn the code base and expand the reach of this
important project.
e