# sovrin-client-rust
# Windows build
- Get binary dependencies (libamcl*, openssl, libsodium, libzmq, sqlite3).
- Put all *.{lib,dll} into one directory and headers into include/ subdirectory.
- open MSVS development console
- execute "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
- Point path to this directory using environment variables:
- set SOVRIN_PREBUILT_DEPS_DIR=C:\BIN\x64
- set SODIUM_LIB_DIR=C:\BIN\x64
- set OPENSSL_INCLUDE_DIR=C:\BIN\x64\include
- set OPENSSL_LIB_DIR=C:\BIN\x64
- set LIBZMQ_LIB_DIR=C:\BIN\x64
- set LIBZMQ_INCLUDE_DIR=C:\BIN\x64\include
- set static flag for libsodium build
- set SODIUM_STATIC=y
- change dir to sovrin-client and run cargo (you may want to add --release --target x86_64-pc-windows-msvc keys to cargo)
## openssl-sys workaround
When your windows build fails complaining on gdi32.lib you should edit
```
~/.cargo/registry/src/github.com-*/openssl-sys-*/build.rs
```
and add
```
println!("cargo:rustc-link-lib=dylib=gdi32");
```
to the end of main() function.
Then try to rebuild whole project.