-
Sébastien Blin authored
Change-Id: I93ca7b6b66d650c3c3d361d9ce073ae028c8723d
Sébastien Blin authoredChange-Id: I93ca7b6b66d650c3c3d361d9ce073ae028c8723d
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
INSTALL 5.31 KiB
Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
Software Foundation, Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
## Disclaimer
Because the LRC is multi-platforms and supporting macOS, we need a recent version of Qt to do rendering with Metal. So, Qt 6.2 is necessary.
This version is generally not packaged on a lot of platforms, and to control available plugins and such, we have our own Qt packaged (generated by https://review.jami.net/jami-project and available on https://jami.net on the distributions we support).
So, you will need to get Qt 6.2 first. For this, there is 3 methods:
### Qt from https://jami.net (recommended)
If your distribution is supported, we provide a Qt package (`libqt-jami`) on our repo. Follow instructions https://jami.net/download-jami-linux/ (but instead installing `jami` install `libqt-jami`).
The files will be installed in `/usr/lib/libqt-jami`.
### Qt from your distribution
If Qt 6.2 is available, you can use the packages from your distribution:
It should be (For now qt5 only is packaged by distributions, so names can change).
#### Dependencies, Debian based
```
sudo apt-get install cmake make doxygen g++ gettext libnotify-dev pandoc nasm libqrencode-dev \
libnotify-dev libnm-dev \
qtbase6-dev \
qtmultimedia6-dev libqt6svg6-dev qtwebengine6-dev qtdeclarative6-dev \
qtquickcontrols2-6-dev qml-module-qtquick2 qml-module-qtquick-controls \
qml-module-qtquick-controls2 qml-module-qtquick-dialogs \
qml-module-qtquick-layouts qml-module-qtquick-privatewidgets \
qml-module-qtquick-shapes qml-module-qtquick-window2 \
qml-module-qtquick-templates2 qml-module-qt-labs-platform \
qml-module-qtwebengine qml-module-qtwebchannel \
qml-module-qt-labs-qmlmodels
```
#### Dependencies, Fedora based
```
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
https://www.qt.io/product/qt6
Basic Installation
==================
These are generic installation instructions.
To install the appplication, type the following commands in a console, while in the root directory of this application:
mkdir -p build
cd build
cmake ..
The following options are often useful to append to the cmake line:
-DRING_BUILD_DIR=<daemon install location>
-DRING_XML_INTERFACES_DIR=<daemon dbus interface definitions directory>
-DCMAKE_INSTALL_PREFIX=<install location>
-DCMAKE_BUILD_TYPE=<Debug to compile with debug symbols>
-DENABLE_VIDEO=<False to disable video support>
make -jx # where x is the number of core you have
make install
(e.g. `-DCMAKE_PREFIX_PATH=/usr/lib/libqt-jami` if you use Qt from jami.net)
Explanation
===========
This script will configure and prepare the compilation and installation of the program and correctly link it against Ring daemon.
All needed files will be built in "build" directory.
So you have to go to this directory:
cd build
Then execute the Makefile, to compile the application (src, doc...)
make
Then install it all using:
make install
You have to use "sudo" to be able to install the program in a protected directory (which is the case by default and most of the time).
Therefore it will ask for your system password.
OS X Install
============
# Install necessary tools:
brew install cmake
brew install qt6
export CMAKE_PREFIX_PATH=<path_to_qt6>
hint: default install location with HomeBrew is /usr/local/Cellar/qt6
# First make sure you have built ring daemon for OS X.
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=<install_dir_of_daemon> [-DCMAKE_BUILD_TYPE=Debug for compiling with debug symbols]
make install
You can now link and build the OSX client with Ring daemon and LRC library
Testing
=======
Tests are written in the `test` directory.
To run tests, you need to rebuild the application with these commands (from the root directory of the project):
mkdir -p build-test
cd build-test
cmake .. -DENABLE_TEST=true
The following options are often useful to append to the cmake line:
-DRING_BUILD_DIR=<daemon install location>
-DRING_XML_INTERFACES_DIR=<daemon dbus interface definitions directory>
-DCMAKE_INSTALL_PREFIX=<install location>
-DCMAKE_BUILD_TYPE=<Debug to compile with debug symbols>
-DENABLE_VIDEO=<False to disable video support>
make -jx # where x is the number of core you have
make test # or ./LRCTester for more verbosity.
In the `test` directory you can also find a `mocks` folder used to simulate the ring daemon.
`CppUnit` is the testing library used for this project.
Internationalization
====================
To regenerate strings for translations we use lupdate (within root of the project)
lupdate ./src/ -source-language en -ts translations/lrc_en.ts
Hint: On OSX lupdate is installed with Qt in /usr/local/Cellar/qt6/6.2.0/bin/ when installed with HomeBrew