mirror of
https://github.com/savoirfairelinux/jami-client-qt.git
synced 2025-12-18 00:36:35 +08:00
INSTALL.md: remove LRC for windows
GitLab: #783 Change-Id: Ic1ded1eba802eca8ee44c77b49792b3ad89960b5
This commit is contained in:
committed by
Andreas Traczyk
parent
5235b4485f
commit
cad1c5c268
97
INSTALL.md
97
INSTALL.md
@@ -1,8 +1,9 @@
|
|||||||
# Build instructions
|
# Build instructions
|
||||||
|
|
||||||
There is basically two ways to build `client-qt`:
|
There is basically two ways to build `client-qt`:
|
||||||
+ Use `build.py` script which will build all Jami (daemon/client lib/client-qt)
|
|
||||||
+ Build only this client.
|
- Use `build.py` script which will build all Jami (daemon/client lib/client-qt)
|
||||||
|
- Build only this client.
|
||||||
|
|
||||||
## Disclaimer
|
## Disclaimer
|
||||||
|
|
||||||
@@ -43,11 +44,10 @@ sudo apt-get install cmake make doxygen g++ gettext libnotify-dev pandoc nasm li
|
|||||||
sudo dnf install qt6-qtsvg-devel qt6-qtwebengine-devel qt6-qtmultimedia-devel qt6-qtdeclarative-devel qt6-qtquickcontrols2-devel qt6-qtquickcontrols qrencode-devel NetworkManager-libnm-devel
|
sudo dnf install qt6-qtsvg-devel qt6-qtwebengine-devel qt6-qtmultimedia-devel qt6-qtdeclarative-devel qt6-qtquickcontrols2-devel qt6-qtquickcontrols qrencode-devel NetworkManager-libnm-devel
|
||||||
```
|
```
|
||||||
|
|
||||||
### Build Qt from sources
|
### Qt from sources
|
||||||
|
|
||||||
https://www.qt.io/product/qt6
|
https://www.qt.io/product/qt6
|
||||||
|
|
||||||
|
|
||||||
## GNU/Linux
|
## GNU/Linux
|
||||||
|
|
||||||
Then, you can build the project
|
Then, you can build the project
|
||||||
@@ -67,13 +67,13 @@ cd jami-project/
|
|||||||
|
|
||||||
Then you will need to install dependencies:
|
Then you will need to install dependencies:
|
||||||
|
|
||||||
+ For GNU/Linux
|
- For GNU/Linux
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./build.py --dependencies --qt # needs sudo
|
./build.py --dependencies --qt # needs sudo
|
||||||
```
|
```
|
||||||
|
|
||||||
Then, you can build daemon, lrc and client-qt with:
|
Then, you can build daemon and the client with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./build.py --install --qt
|
./build.py --install --qt
|
||||||
@@ -83,20 +83,19 @@ And you will have the daemon in `daemon/bin/jamid` and the client in `client-qt/
|
|||||||
|
|
||||||
If you use a Qt version that is not wide-system installed you need to specify its path after the `--qt` flag, i. e., `./build.py --install --qt /home/<username>/Qt/6.2.1/gcc_64
|
If you use a Qt version that is not wide-system installed you need to specify its path after the `--qt` flag, i. e., `./build.py --install --qt /home/<username>/Qt/6.2.1/gcc_64
|
||||||
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./build.py --run --qt
|
./build.py --run --qt
|
||||||
```
|
```
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
+ `--global-install` to install client-qt globally under /usr/local
|
|
||||||
+ `--prefix` to change the destination of the install.
|
- `--global-install` to install client-qt globally under /usr/local
|
||||||
|
- `--prefix` to change the destination of the install.
|
||||||
|
|
||||||
## Build only the client
|
## Build only the client
|
||||||
|
|
||||||
In order to use the Qt Client it is necessary to have the Qt version 5.14 or higher. If your system does not have it you can install it [from sources or download the binary installer](https://www.qt.io/download).
|
In order to use the Qt Client it is necessary to have the Qt version 5.14 or higher. If your system does not have it you can install it [from sources or download the binary installer](https://www.qt.io/download).
|
||||||
|
|
||||||
|
|
||||||
## Build only this repository
|
## Build only this repository
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -108,12 +107,11 @@ make -j
|
|||||||
```
|
```
|
||||||
|
|
||||||
cmake can take some options:
|
cmake can take some options:
|
||||||
+ If lrc library is installed in a custom directory you can set its path with the variable LRC. Additionally you can specify built library location with `LRC` (otherwise it will seach inside LRC with the suffixes `/lib`, `/build` and `/build-local`).
|
|
||||||
|
|
||||||
e.g. (with Qt version from https://jami.net)
|
e.g. (with Qt version from https://jami.net)
|
||||||
|
|
||||||
```
|
```
|
||||||
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=jami-project/install/client-qt -DLRC=jami-project/install/lrc -DCMAKE_PREFIX_PATH=/usr/lib/libqt-jami
|
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=jami-project/install/client-qt -DCMAKE_PREFIX_PATH=/usr/lib/libqt-jami
|
||||||
```
|
```
|
||||||
|
|
||||||
After the build has finished, you are finally ready to launch jami-qt in your build directory.
|
After the build has finished, you are finally ready to launch jami-qt in your build directory.
|
||||||
@@ -129,8 +127,11 @@ make install
|
|||||||
Only 64-bit MSVC build can be compiled.
|
Only 64-bit MSVC build can be compiled.
|
||||||
|
|
||||||
**Setup Before Building:**
|
**Setup Before Building:**
|
||||||
- Download [Qt (Open Source)](https://www.qt.io/download-open-source?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5)<br>
|
|
||||||
|
- Download [Qt (Open Source)](https://www.qt.io/download-open-source?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5)
|
||||||
|
|
||||||
- Using the online installer, install the following Qt 6.2.3 components:
|
- Using the online installer, install the following Qt 6.2.3 components:
|
||||||
|
|
||||||
- MSVC 2019 64-bit
|
- MSVC 2019 64-bit
|
||||||
- Qt 5 Compatibility Module
|
- Qt 5 Compatibility Module
|
||||||
- Additional Libraries
|
- Additional Libraries
|
||||||
@@ -141,21 +142,24 @@ Only 64-bit MSVC build can be compiled.
|
|||||||
- Qt WebSockets
|
- Qt WebSockets
|
||||||
- Qt WebView
|
- Qt WebView
|
||||||
|
|
||||||
- Download [Visual Studio](https://visualstudio.microsoft.com/) (version >= 2019) <br>
|
- Download [Visual Studio](https://visualstudio.microsoft.com/) (version >= 2019). Note: version 2022 does not work.
|
||||||
- Install Qt Vs Tools under extensions, and configure msvc2017_64 path under Qt Options <br>
|
|
||||||
|
- Install Qt Vs Tools under extensions, and configure msvc2017_64 path under Qt Options
|
||||||
|
|
||||||
| | Qt Version | SDK | Toolset |
|
| | Qt Version | SDK | Toolset |
|
||||||
|---|---|---|---|
|
| -------------------- | ---------- | ------------ | ------- |
|
||||||
| Minimum requirement: | 6.2.3 | 10.0.16299.0 | V142 |
|
| Minimum requirement: | 6.2.3 | 10.0.16299.0 | V142 |
|
||||||
|
|
||||||
- Install [Python3](https://www.python.org/downloads/) for Windows
|
- Install [Python3](https://www.python.org/downloads/) for Windows
|
||||||
|
|
||||||
- Using **Elevated Command Prompt**
|
- Using **Elevated Command Prompt**
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
python build.py --dependencies
|
python build.py --dependencies
|
||||||
```
|
```
|
||||||
|
|
||||||
> Note:
|
> Note:
|
||||||
|
>
|
||||||
> 1. This command will install **chocolatey** which may require you to restart the Command Prompt to be able to use it.
|
> 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: <br>
|
> 2. This command will install **msys2 (64 bit)** by using chocolatey command which may cause issues below: <br>
|
||||||
> a. Choco may require you to restart the Command Prompt after finishing installing msys2. <br>
|
> a. Choco may require you to restart the Command Prompt after finishing installing msys2. <br>
|
||||||
@@ -168,50 +172,58 @@ Only 64-bit MSVC build can be compiled.
|
|||||||
> The issue 4 can be solved by adding the location of the cmake.exe into PATH. <br>
|
> The issue 4 can be solved by adding the location of the cmake.exe into PATH. <br>
|
||||||
|
|
||||||
- Using a new **Non-Elevated Command Prompt**
|
- Using a new **Non-Elevated Command Prompt**
|
||||||
```sh
|
|
||||||
|
```bash
|
||||||
python build.py --install
|
python build.py --install
|
||||||
```
|
```
|
||||||
- Then you should be able to use the Visual Studio Solution file in client-windows folder **(Configuration = Release, Platform = x64)**
|
|
||||||
|
Note: If you have another version than qt 6.2.3 installed this step will build daemon correctly but will fail for the client.
|
||||||
|
When that happens you need to compile the client separately:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python build.py --install
|
||||||
|
cd client-qt
|
||||||
|
python build.py init
|
||||||
|
python build.py --qtver <your qt version>
|
||||||
|
```
|
||||||
|
|
||||||
|
- Then you should be able to use the Visual Studio Solution file in client-qt folder **(Configuration = Release, Platform = x64)**
|
||||||
|
|
||||||
### Build Module Individually
|
### Build Module Individually
|
||||||
|
|
||||||
- Jami-qt also support building each module (daemon, lrc, jami-qt) seperately
|
- Jami-qt also support building each module (daemon, jami-qt) seperately
|
||||||
|
|
||||||
**Daemon**
|
**Daemon**
|
||||||
|
|
||||||
- Make sure that dependencies is built by make-ring.py
|
- Make sure that dependencies is built by make-ring.py
|
||||||
- On MSVC folder (jami-project\daemon\MSVC):
|
- On MSVC folder (jami-project\daemon\MSVC):
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cmake -DCMAKE_CONFIGURATION_TYPES="ReleaseLib_win32" -DCMAKE_VS_PLATFORM_NAME="x64" -G "Visual Studio 16 2019" -A x64 -T '$(DefaultPlatformToolset)' ..
|
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
|
python winmake.py -b daemon
|
||||||
```
|
```
|
||||||
- This will generate a ```.lib``` file in the path of ring-project\daemon\MSVC\x64\ReleaseLib_win32\bin
|
|
||||||
|
- 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 <br>
|
> Note: each dependencies contrib for daemon can also be updated individually <br>
|
||||||
> For example:
|
> For example:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python winmake.py -b opendht
|
python winmake.py -b opendht
|
||||||
```
|
```
|
||||||
|
|
||||||
**Lrc**
|
|
||||||
|
|
||||||
- Make sure that daemon is built first
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd lrc
|
|
||||||
python make-lrc.py
|
|
||||||
```
|
|
||||||
|
|
||||||
**Jami-qt**
|
**Jami-qt**
|
||||||
|
|
||||||
- Make sure that daemon, lrc are built first
|
- Make sure that daemon, is built first
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd client-windows
|
cd client-qt
|
||||||
python make-client.py init
|
python build.py init
|
||||||
python make-client.py
|
python build.py
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Note: if your qt version is different than 6.2.3, you need to use `python build.py --qtver <your qt version>`.
|
||||||
|
|
||||||
## Building On MacOS
|
## Building On MacOS
|
||||||
|
|
||||||
**Set up**
|
**Set up**
|
||||||
@@ -222,38 +234,45 @@ Only 64-bit MSVC build can be compiled.
|
|||||||
- install Qt 6.2
|
- install Qt 6.2
|
||||||
|
|
||||||
Qt 6.2 can be installed via brew
|
Qt 6.2 can be installed via brew
|
||||||
```brew install qt
|
|
||||||
|
```bash
|
||||||
|
brew install qt
|
||||||
```
|
```
|
||||||
|
|
||||||
or downloaded from [Qt (Open Source)](https://www.qt.io/download-open-source?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5)
|
or downloaded from [Qt (Open Source)](https://www.qt.io/download-open-source?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5)
|
||||||
|
|
||||||
Then, you can build the project
|
Then, you can build the project
|
||||||
|
|
||||||
**Build with build.py**
|
**Build with build.py**
|
||||||
|
|
||||||
```git clone https://review.jami.net/jami-project
|
```bash
|
||||||
|
git clone https://review.jami.net/jami-project
|
||||||
cd jami-project
|
cd jami-project
|
||||||
./build.py --init
|
./build.py --init
|
||||||
./build.py --dependencies --qt
|
./build.py --dependencies --qt
|
||||||
./build.py --install --qt
|
./build.py --install --qt
|
||||||
```
|
```
|
||||||
|
|
||||||
If you use a Qt version that is installed in a different than standard location you need to specify its path
|
If you use a Qt version that is installed in a different than standard location you need to specify its path
|
||||||
```./build.py --install --qt QT_ROOT_DIRECTORY=your_qt_directory
|
|
||||||
|
```bash
|
||||||
|
./build.py --install --qt QT_ROOT_DIRECTORY=your_qt_directory
|
||||||
```
|
```
|
||||||
|
|
||||||
Built client could be find in `client-qt/build-local/Jami`
|
Built client could be find in `client-qt/build-local/Jami`
|
||||||
|
|
||||||
## Packaging On Native Windows
|
## Packaging On Native Windows
|
||||||
|
|
||||||
- To be able to generate a msi package, first download and install [Wixtoolset](https://wixtoolset.org/releases/).
|
- To be able to generate a msi package, first download and install [Wixtoolset](https://wixtoolset.org/releases/).
|
||||||
- In Visual Studio, download WiX Toolset Visual Studio Extension.
|
- 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
|
- Build client-qt project first, then the JamiInstaller project, msi package should be stored in jami-project\client-qt\JamiInstaller\bin\Release
|
||||||
|
|
||||||
## Testing for Client-qt on Windows
|
## Testing for Client-qt on Windows
|
||||||
|
|
||||||
- We currently use [GoogleTest](https://github.com/google/googletest) and [Qt Quick Test](https://doc.qt.io/qt-5/qtquicktest-index.html#introduction) in our product. To build and run tests, you could use the following command.
|
- We currently use [GoogleTest](https://github.com/google/googletest) and [Qt Quick Test](https://doc.qt.io/qt-5/qtquicktest-index.html#introduction) in our product. To build and run tests, you could use the following command.
|
||||||
|
|
||||||
```
|
```
|
||||||
python make-client.py -b -wt
|
python build.py [runtests, pack]
|
||||||
python make-client.py runtests
|
|
||||||
```
|
```
|
||||||
|
|
||||||
- Note that, for tests, the path of local storage files for jami will be changed based on following environment variables.
|
- Note that, for tests, the path of local storage files for jami will be changed based on following environment variables.
|
||||||
|
|||||||
Reference in New Issue
Block a user