Read-only mirror of the jami-client-windows repository -- please use that instead.

Clone this repo:
  1. a424d69 i18n: automatic bump by Jenkins · 3 years, 10 months ago master
  2. df1f1b5 i18n: automatic bump by Jenkins · 3 years, 10 months ago
  3. cdfbbf4 i18n: automatic bump by Jenkins · 3 years, 10 months ago
  4. 61e9492 misc: add necessary headers by Mingrui Zhang · 3 years, 11 months ago
  5. f999657 Fix for password protected profile gz loading by Nikolai Danylchyk · 4 years ago

Jami-qt

jami-qt is the cross platform client for Jami. For now, it's mainly used for the Windows platform and is not tested on other platforms.

jami-logo

For more information about the jami project, see the following:

Building On Native Windows


Only 64-bit MSVC build can be compiled.

Note: command ./make-ring.py --init is not required on the Windows build

Setup Before Building:

  • Download Qt (Open Source)

    PrebuildModule
    Components:msvc2017_64Qt WebEngine
  • Download Visual Studio (version >= 2015)

  • Install Qt Vs Tools under extensions, and configure msvc2017_64 path under Qt Options

    Qt VersionSDKToolset
    Minimum requirement:5.9.410.0.16299.0V141
  • Install Python3 for Windows

Start Building

  • Using Command Prompt
    git clone https://review.jami.net/ring-project
    cd ring-project/
    git submodule update --init daemon lrc client-windows
    git submodule update --recursive --remote daemon lrc client-windows
  • Using Elevated Command Prompt
    python make-ring.py --dependencies

Note:

  1. This command will install chocolatey which may require you to restart the Command Prompt to be able to use it.
  2. This command will install msys2 (64 bit) by using chocolatey command which may cause issues below:
    a. Choco may require you to restart the Command Prompt after finishing installing msys2.
    b. Only if you have already installed msys2 (64 bit) under the default installation folder, we will use the existing one.
  3. This command will install strawberry perl by using chocolatey command which may fail if you have already installed it.
  4. This command will install cmake by using chocolatey command which will not add cmake into PATH (environment variable).

The issue 1, 2(a), 3 can be solved by restarting the Command Prompt under Administrator right and re-run the command.
The issue 3 can be solved by uninstalling your current strawberry perl and re-run the command.
The issue 4 can be solved by adding the location of the cmake.exe into PATH.

  • Using a new Non-Elevated Command Prompt
    python make-ring.py --install
  • Then you should be able to use the Visual Studio Solution file in client-windows folder (Configuration = Release, Platform = x64)

Note:
To control the toolset and the sdk version that are used by msbuild, you can use --toolset and --sdk options
To control which Qt version should be used (qmake, windeployqt), uou can use --qtver option
By default: toolset=v141, sdk=10.0.16299.0, qtver=5.9.4
For example:

    python make-ring.py --install --toolset v142 --sdk 10.0.18362.0 --qtver 5.12.0

Build Module individually


  • Jami-qt also support building each module (daemon, lrc, jami-qt) seperately

Daemon

  • Make sure that dependencies is built by make-ring.py
  • On MSVC folder (ring-project\daemon\MSVC):
    cmake -DCMAKE_CONFIGURATION_TYPES="ReleaseLib_win32" -DCMAKE_VS_PLATFORM_NAME="x64" -G "Visual Studio 16 2019" -A x64 -T '$(DefaultPlatformToolset)' ..
    python winmake.py -b daemon
  • This will generate a .lib file in the path of ring-project\daemon\MSVC\x64\ReleaseLib_win32\bin

Note: each dependencies contrib for daemon can also be updated individually
For example:

    python winmake.py -b opendht

Lrc

  • Make sure that daemon is built first
    cd lrc
    python make-lrc.py -gb

Jami-qt

  • Make sure that daemon, lrc are built first
    cd client-windows
    pandoc -f markdown -t html5 -o changelog.html changelog.md
    python make-client.py -d
    python make-client.py -b
    powershell -ExecutionPolicy Unrestricted -File copy-runtime-files.ps1

Note

  • For all python scripts, both --toolset and --sdk options are available.
  • For more available options, run scripts with -h option.
  • --qtver option is available on make-lrc.py and make-client.py.

Packaging On Native Windows


  • To be able to generate a msi package, first download and install Wixtoolset.
  • In Visual Studio, download WiX Toolset Visual Studio Extension.
  • Build client-windows project first, then the JamiInstaller project, msi package should be stored in ring-project\client-windows\JamiInstaller\bin\Release

Linux


For now, this process is experimental.

Other Requirements

  • Qt 5.9.4 (qt open source)
  • libqt5svg*, qtwebengine5-dev, qtmultimedia5-dev, qtdeclarative5-dev, pandoc

Getting the Source Code

    git clone https://review.jami.net/ring-client-windows

Build Instructions

Windows Client dependencies

  • For Debian based:
    sudo apt install qtmultimedia5-dev libqt5svg5* qtwebengine5-dev qtdeclarative5-dev qtquickcontrols2-5-dev qml-module-qtquick* pandoc
  • For Fedora:
    sudo dnf install qt5-qtsvg-devel qt5-qtwebengine-devel qt5-qtmultimedia-devel qt5-qtdeclarative-devel qt5-qtquickcontrols2-devel pandoc

Build Windows Client

    cd ring-client-windows
    pandoc -f markdown -t html5 -o changelog.html changelog.md
    mkdir build
    cd build
    qmake -qt=qt5 ../jami-qt.pro
    make -j9
  • Then, you are finally ready to launch jami-qt in your build directory.

Debugging

Compile the client with BUILD=Debug and compile LibRingClient with -DCMAKE_BUILD_TYPE=Debug

Known issues

  1. The build system is not straight forward
  2. Video doesn't work
  3. Can't maximize/minimize window
  4. Crash if the daemon is not started and installed.

Mac OS


TBD