Skip to content

Windows

Environment Setup

The following setups are required for building and packaging Sync Client on Windows:

  • Visual Studio 2019
    • Desktop development with C++
      • MSVC v142
      • Windows 10 SDK (10.0.19041.0) (installed by default, not used)
      • Windows 10 SDK (10.0.18362.0)
    • Universal Windows Platform development
      • Windows 10 SDK (10.0.18362.0)
  • Qt 6.5
    • MSVC 2019 64-bit
    • Qt 5 Compatibility Module
    • Qt Positioning
    • Qt Serial Port
    • Qt WebChannel
    • Qt WebEngine
  • Qt VS Tools
  • vcpkg (it is recommended to update to the latest version)
    • Run vcpkg.exe integrate install to integrates vcpkg with projects.
    • Note: Dependencies will be automatically downloaded and compiled when building VS projects.

Building Sync Client

Following directory structures are expected when building Sync Client:

seafile-workspace/
seafile-workspace/libsearpc/
seafile-workspace/seafile/
seafile-workspace/seafile-client/
seafile-workspace/seafile-shell-ext/

The source code of these projects can be downloaded at github.com/haiwen/libsearpc, github.com/haiwen/seafile, github.com/haiwen/seafile-client, and github.com/haiwen/seafile-shell-ext.

Building

Note: these commands are run in "x64 Native Tools Command Prompt for VS 2019". The "Debug|x64" configuration is simplified to build, which does not include breakpad and other dependencies.

To build libsearpc:

$ cd seafile-workspace/libsearpc/
$ devenv libsearpc.sln /build "Debug|x64"

To build seafile

$ cd seafile-workspace/seafile/
$ devenv seafile.sln /build "Debug|x64"
$ devenv msi/custom/seafile_custom.sln /build "Debug|x64"

To build seafile-client

$ cd seafile-workspace/seafile-client/
$ devenv third_party/quazip/quazip.sln /build "Debug|x64"
$ devenv seafile-client.sln /build "Debug|x64"

To build seafile-shell-ext

$ cd seafile-workspace/seafile-shell-ext/
$ devenv extensions/seafile_ext.sln /build "Debug|x64"
$ devenv seadrive-thumbnail-ext/seadrive_thumbnail_ext.sln /build "Debug|x64"

Packaging

Additional setups are required for packaging:

  • Python 3.7
  • wix
    • install to C:\wix
  • Paraffin
    • copy Paraffin.exe to C:\wix\bin
  • Breakpad
    • Seafile Client is currently using an older version of Breakpad. The latest version may not be fully compatible, and we are in the process of upgrading it.
  • Certificates

    • install to C:\certs
  • Update the CERTFILE configure in seafile-workspace/seafile/scripts/build/build-msi-vs.py .

  • Run commands:
    $ cd seafile-workspace/seafile-client/third_party/quazip
    $ devenv quazip.sln /build Release|x64
    $ cd seafile-workspace/seafile/scripts/build
    $ python build-msi-vs.py 1.0.0