1 AdminDepLibs
Vitalii Koshura edited this page 2023-04-10 01:58:41 +02:00

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.

Dependency trees have been created for various versions of Visual Studio:

https://boinc.berkeley.edu/dl/boinc_depends/

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 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: zLib

OpenSSL

Project URL: https://www.openssl.org/ Follow these build instructions:

  1. Install perl from https://www.activestate.com/activeperl

  2. Open Visual Studio Command Prompt

  3. Build 32-bit Release and debug. Roughly based on INSTALL.W32 from the main openssl directory:

Release:

$ perl Configure VC-WIN32 no-asm --prefix=c:\openssl_W32_Release
$ ms\do_ms
$ nmake -f ms\ntdll.mak
$ nmake -f ms\ntdll.mak test
$ nmake -f ms\ntdll.mak install

Debug:

$ perl Configure VC-WIN32 no-asm --prefix=c:\openssl_W32_Debug
$ ms\do_ms
$ nmake -f ms\ntdll.mak
$ nmake -f ms\ntdll.mak test
$ nmake -f ms\ntdll.mak install
  1. Open Visual Studio x64 Win64 Command Prompt (note this is different than the normal visual studio command prompt):

  2. Build 64-bit Release and debug. Instructions in INSTALL.W64 are not complete/detailed:

Release:

$ perl Configure VC-WIN64A --prefix=c:\openssl_W64_Release
$ ms\do_win64a
$ nmake -f ms\ntdll.mak
$ nmake -f ms\ntdll.mak test
$ nmake -f ms\ntdll.mak install

Debug:

$ perl Configure debug-VC-WIN64A --prefix=c:\openssl_W64_Debug
$ ms\do_win64a
$ nmake -f ms\ntdll.mak
$ nmake -f ms\ntdll.mak test
$ nmake -f ms\ntdll.mak install
  1. Copy resulting files to the appropriate boinc_dependencies directories

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: Curl

Sqlite

(will be deprecated once we switch to concierge-based auto attach)

Project URL: https://www.sqlite.org

Follow these build instructions:

  1. Download the Snapshop of the complete (raw) source tree for SQLite from: https://www.sqlite.org/index.html. For reference, the current filename for this format is: sqlite-src-3240000.zip

  2. Unzip downloaded zip file

  3. Open Visual Studio command prompt and cd to uncompressed directory

  4. Build the 32-bit non-debug files:

$ nmake /f Makefile.msc
  1. Copy resulting files to the appropriate boinc_dependencies directories

  2. Build the 32-bit debug files:

$ nmake DEBUG=1 /f Makefile.msc
  1. Copy resulting files to the appropriate boinc_dependencies directories

  2. Open Visual Studio x64 Win64 Command Prompt (note this is different than the normal visual studio command prompt)

  3. Build the 64-bit non-debug files:

$ nmake PLATFORM=x64 /f Makefile.msc
  1. Copy resulting files to the appropriate boinc_dependencies directories

  2. Build the 64-bit debug files:

$ nmake DEBUG=1 PLATFORM=x64 /f Makefile.msc
  1. Copy resulting files to the appropriate boinc_dependencies directories

WxWidgets

URL: http://www.wxwidgets.org/