# Building resiprocate with Visual Studio 2010

## Dependencies

When checked out from SVN, all dependent libraries are included with one exception: You need to download openSSL. You can either download the source and build it or download the precompiled binaries from http://slproweb.com/products/Win32OpenSSL.html. You need to download the full versions, the light versions are not sufficient. If you want to build for x64 you need to download the x64 version.

Please note that the x64 version can be installed on x64 machines, but you can copy the install folder to a 32bit system and cross-compile for x64. The openssl install folders need to be renamed and put at the following locations:

- Solution Folder
  - contrib
    - openssl (for Win32)
    - opensslx64 (for x64)

Additionally, in order to compile reTurn, it is required to have boost in the contrib\boost folder. The latest version that was proofed to compile successfully with Visual Studio 2010 is 1.53.0

## Configurations and Platforms

There are eight possible configuration/platform combinations: SSL/non-SSL * Debug/Release * x86/x64 = 8

The output of all projects is created in a single folder for each configuration/platform combinations. The output is organized as follows:

- Solution Folder
  - Win32
    - Debug
    - Release
    - SSL-Debug
    - SSL-Release
  - X64
    - Debug
    - Release
    - SSL-Debug
    - SSL-Release

## Batch Builds

The Visual Studio Batch Build feature does not work with the current configuration. This is due to a bug in Visual Studio 2010 when project references are used. It could be solved by removing project references, adding project dependencies instead and specifying all generated import libraries directly in the linker configuration. This would practically resemble the way this was done in pre-VS10 environments, but it would involve a bit of configuration work.

More info on this bug can be found here:

- http://connect.microsoft.com/VisualStudio/feedback/details/636636/batch-build-does-not-work-as-expected
- http://connect.microsoft.com/VisualStudio/feedback/details/633270/link-library-dependencies-for-c-does-not-work-with-batch-build
- http://qualapps.blogspot.de/2010/04/static-library-dependencies-in-visual.html