= BOINC Dependencies on Windows = BOINC uses a number of third party libraries to handle things like communicating through proxies and SSL support. Building these libraries with support for debugging can be tricky. A number of dependency trees have been created for Visual Studio: 2005: [http://boinc.berkeley.edu/gitweb/?p=boinc_depends_win_vs2005.git;a=summary boinc_depends_win_vs2005][[BR]] 2008: [http://boinc.berkeley.edu/gitweb/?p=boinc_depends_win_vs2008.git;a=summary boinc_depends_win_vs2008][[BR]] 2010: [http://boinc.berkeley.edu/gitweb/?p=boinc_depends_win_vs2010.git;a=summary boinc_depends_win_vs2010][[BR]] 2013: [http://boinc.berkeley.edu/gitweb/?p=boinc_depends_win_vs2013.git;a=summary boinc_depends_win_vs2013][[BR]] These will need to be updated whenever new third party libraries need to be used or the Microsoft C-Runtime library has been updated. == Building Updated Dependency Libraries == As of VS 2013 our libraries should be configured with the following settings for all builds. Compiler Settings: * Debug Information Format: Program Database (/Zi) * Runtime Library: Multi-threaded DLL (/MD) Linker Settings: * Generated Debug Info: Yes (/DEBUG) * Set Checksum: Yes (/RELEASE) These settings enable the use of the correct C-Runtime library for BOINC and the ability for a debugger to correctly load the right symbol file for a given executable or DLL from BOINC's [http://boinc.berkeley.edu/symstore/ symbol store]. BOINC builds with four configurations: * Debug/x86 * Release/x86 * Debug/x64 * Release/x64 Each library will need to have an updated binary and symbol file for each configuration. === zLib === Project URL: [http://www.zlib.net/] zLib keeps its Visual Studio project files under 'contrib/vstudio/vc11'. Upgrade the project files to VS 2013. Build all four configurations and copy the dll, lib, and pdb file to the root of the zlib source directory so that libcurl can find it later. Project file diffs: [wiki:AdminDepLibszLib zLib] === OpenSSL === Project URL: [https://www.openssl.org/] Follow build instructions in INSTALL.W32 for Release/x86 and Debug/x86 configurations. Follow build instructions in INSTALL.W64 for Release/x64 and Debug/x64 configurations. NOTE: You will need to install some form of perl if it is not already installed on your computer. See: [http://www.activestate.com/activeperl ActivePerl]. Be sure to add the 'no-asm' option to the 'Configure' script. Modify the resulting ntdll.mak file based on the project diffs below. Project file diffs: [wiki:AdminDepLibsOpenSSL OpenSSL] === Curl === Project URL: [http://curl.haxx.se/libcurl/] Follow build instructions in docs/INSTALL for all configurations. Example (Release/x86): {{{ set ZLIB_PATH=c:\src\sdks\zlib-1.2.8 set OPENSSL_PATH=c:\src\sdks\openssl-1.0.2a nmake -f Makefile cfg=release-dll-ssl-dll-zlib-dll }}} Project file diffs: [wiki:AdminDepLibsCurl Curl] === Sqlite === (will be deprecated once we switch to concierge-based auto attach) Project URL: [https://www.sqlite.org/] Use the project file included in the Sqlite project file diff page. Project file diffs: [wiki:AdminDepLibsSqlite Sqlite] === WxWidgets === URL: http://www.wxwidgets.org/