Hi Claire
I must answer number 2. in your messages, I hope you don't mind?
I have received some private messages and emails asking me some questions so I thought I would post an update here.
2) Would you consider to move all 3rd party libraries into your project?
That defeats the whole spirit of the libraries. They should be separate static library builds to allow a simple rebuild of a newer library version, e.g. OpenSSL 1.0.1e in place of 1.0.1c. Rebuild the MSVC static library project (minutes at the most) and simply relink the bitcoin project. Keeping versions straight without library names would seem to quickly lead to insanity, don't you think?
Also, you are mixing their sources in your project. Surely not ethical or proper.
I tried it just today, and for example openssl and boost libraries can be comfortably added to the MSVC project through the NuGet Manager - no need to download, install, and compile them separately.
You picked the two easy ones! They are almost trivial to build in MSVC++ given the instructional help, especially Boost.
You are adding another layer of complexity with NuGet to a simple process that doesn't need more complexity. And it is (probably) only an easy VS2010 2012 install. How about other Visual Studios, newer and older?
Also the berkeley-db, it's just a bunch of headers and libs,
Really! I think Larry Ellison would disagree with you. Have you looked at
http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index-082944.htmlhave you looked at the version bitcoin uses? Have you uncompressed and actually looked at what's there? I don't see any, and I'll use your quote
it's just a bunch of headers and libs
BS, say I! It is an interface for C/C++ and C sources for the actual database, and easy to work with VS projects, solutions and workspaces. No libraries in sight. And easy to build again.
it could be added directly to the project.
Why, when the spirit of the bitcoin source is to use available libraries. You are slowing down the build process to needlessly recompile a project when the sources are best kept in an already compiled once static library. Do you think the gcc version of bitcoin recompiles the libraries every time?
You never mentioned the main library leveldb. Have you done that? If anything needed its own library, that would be the one. And how do you do all the separate tests provided by the original sources in your scenario?
Also the sources for the programs would no longer be unified, which is not what we want. We want one set of sources using the same versions of the same libraries.
It seems you are just a distraction trying to stick a wrench into the wheels of progress.
Also the QT is doable, since we use it at my work, and we just integrated the sources to our source code tree and compile it together with our files. This way, people could just download the msvc solution and it would work out of the box without the need to install anything else.
2. I'd rather not clutter up the solution any more than it already is. I feel funny enough having put the QR code project in there now. I use Qt and openssl in my work as well, but I think my team mates would have a fit if I tried to put them into the solution. Currently, I build Qt/OpenSsl and give everyone the output in a zip file. That seems to work the best, especially since we often have to switch back and forth between Qt versions.
Absolutely. Keep all four libraries separate. Makes for a fast bitcoin rebuild. In case this person thinks that one can't debug into the libraries he is sorely mistaken! Since one built them in VS, the /MTd libraries debug all the way down "to the bottom"! Just because MingW gcc libraries are somewhat tricky to configure for building on a Windows machine doesn't mean MSVC libraries are. Actually they are quite a bit easier thanks to MS.
Ron